apache-spark - CDH-5.4.0、spark-on-yarn、集群模式和 Java

标签 apache-spark cloudera hadoop-yarn cloudera-cdh

我有一个 CDH-5.4.0,带有 spark-on-yarn 的 4 节点集群。
我有一个环境变量 YARN_CONF_DIR 指向包含从其中一个集群成员(yarn 资源管理器的地址)获取的配置文件副本的目录。
我想从 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) 之后挂起

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

最佳答案

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

对于您的 CDH-5.4.0 集群,您可以从 Cluster/yarn/Actions/Download Client Configuration 下载配置,解压并设置 HADOOP_CONF_DIR YARN_CONF_DIR 指向这个目录。

关于apache-spark - CDH-5.4.0、spark-on-yarn、集群模式和 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30192624/

相关文章:

json - 如何在 spark 中写入有效的 json

apache-spark - Spark 2.2 Join 因庞大的数据集而失败

hadoop - HBASE中的SingleColumnValueFilter给出错误

sql - Impala 外部表位置/URI

hadoop - 无法通过Cloudera Manager中的端口14000连接到WebHDFS

hadoop - 如何消除错误 util.Shell : Failed to locate the winutils binary

hadoop - Apache Spark 在 YARN 中部署时如何处理系统故障?

java - 使用spark检索elasticsearch数据时出现错误

python - 如何在Pyspark中生成带有数量的关联规则?

apache-spark - yarn 容器故障引起的 Spark