我尝试将spark应用程序部署到由yarn控制的kerberized hadoop集群。spark的版本是1.5.0-cdh5.5.2。
我遇到了一个奇怪的异常,在空闲超过10秒后停止sparkcontext并初始化一个新的sparkcontext。
我试着做一些类似于这个开发人员所做的事情,并显式地指定hdfs namenode address,但是没有帮助。
更让人困惑的是,如果我根本不重置sparkcontext,或者在这个spark上下文中执行最后一个命令后不到10秒就重置它,那么一切都可以正常工作。
我怎么能修好它?
以下是遇到问题的情况:
package demo;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
public class App
{
public static void main( String[] args ) throws Exception {
SparkConf sparkConf = new SparkConf();
sparkConf.setAppName("demo");
sparkConf.set("spark.yarn.access.namenodes", "hdfs://hdp:8020");
JavaSparkContext jsc = new JavaSparkContext(sparkConf);
int waiting_time = 10;
System.out.println("Waiting time: " + Integer.toString(waiting_time));
Thread.sleep(waiting_time * 1000);
jsc.stop();
jsc = new JavaSparkContext(sparkConf); // "Delegation token ..." exception here
}
}
异常时的堆栈跟踪raised:httpshttp://gist.github.com/anonymous/18e15010010069b119aa0934d6f42726
spark提交命令:
spark-submit --principal mp@LAGOON --keytab mp.keytab --master yarn-client --class demo.App demo.jar
2条答案
按热度按时间6rqinv9w1#
对我来说,每次重新登录都能解决问题
bogh5gae2#
问题是由以下问题引起的:https://issues.apache.org/jira/browse/spark-15754
在spark 1.6.2中,它是固定的。