【问题标题】:CDH-5.4.0, spark-on-yarn, cluster-mode and JavaCDH-5.4.0、spark-on-yarn、集群模式和 Java
【发布时间】:2015-12-18 17:41:48
【问题描述】:

我有一个 CDH-5.4.0,带有 spark-on-yarn 的 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) 之后挂起

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

【问题讨论】:

  • 程序是否以本地模式执行?
  • “本地模式”是什么意思?运行程序的机器不是集群的一部分。如果我 SSH 到其中一个节点,我可以使用 spark-submit
  • 如果你使用 setMaster("local") 而不是你所拥有的,它运行时不会出错吗?
  • 将其设置为“本地”使驱动程序在本地运行。不过,它连接到 HDFS。我确定它与配置文件有关,只是不能把我的手指放在它上面......

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2018-01-10
    • 2018-06-17
    • 1970-01-01
    相关资源
    最近更新 更多