CDH-5.4.0,spark-on-yarn,cluster-mode和Java

时间:2015-05-12 13:39:55

标签: apache-spark cloudera yarn cloudera-cdh

我有一个CDH-5.4.0,4节点的群集,上面有火花 我有一个环境变量YARN_CONF_DIR指向包含从其中一个集群成员(其中是资源管理器的地址)获取的配置文件的副本的目录。
我想从java运行一个spark作业:

SparkConf sparkConf = new SparkConf().
            setMaster("yarn-cluster").// "yarn-cluster" or "yarn-client"
            setAppName("SparX");
JavaSparkContext sc = new JavaSparkContext(sparkConf);
String path = "hdfs://virtual-machine-12.local:8020/mockRecords.csv";
JavaRDD<String> textFile = sc.textFile(path);
System.out.println(textFile.count());

如果我以yarn-cluster模式运行该程序,我会得到NullPointerException

at org.apache.spark.deploy.yarn.ApplicationMaster$.sparkContextInitialized(ApplicationMaster.scala:580)

如果我在yarn-client中运行该程序,则代码会在new JavaSparkContext(sparkConf)

之后挂起

知道我错过了什么吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

确保HADOOP_CONF_DIR或YARN_CONF_DIR指向包含Hadoop集群的(客户端)配置文件的目录。

对于CDH-5.4.0群集,您可以从Cluster/yarn/Actions/Download Client Configuration下载配置,解压缩并将HADOOP_CONF_DIRYARN_CONF_DIR点设置为此目录。