将hdfs路径作为spark提交中的环境变量传递

时间:2015-04-15 11:46:23

标签: hadoop apache-spark hdfs yarn

我正在尝试使用spark群集上的spark提交运行我的spark程序,我正在读取放在hdfs中的外部配置文件,我正在运行作业 -

./spark-submit --class com.sample.samplepack.AnalyticsBatch --master yarn-cluster --num-executors 3 --driver-memory 512m --executor-memory 512m --executor-cores 1 --driver-java-options "-Dext.properties.dir=hdfs://namenode:8020/tmp/some.conf" PocSpark-1.0-SNAPSHOT-job.jar 10

但是它无法从hdfs读取文件,我也尝试在本地模式下运行作业,使用conf文件作为hdfs路径,我得到了 -

java.io.FileNotFoundException: hdfs:/namenode:8020/tmp/some.conf (No such file or directory)

此处缺少hdfs协议正斜杠。任何帮助将在这里表示赞赏。

2 个答案:

答案 0 :(得分:0)

您必须设置HADOOP_CONF_DIR环境变量。它必须指向包含core-site.xml的目录(可能类似于../hadoop-2.6.0/etc/hadoop_dir)并且core-site.xml必须包含:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://yourHost:54310</value>
    </property>
</configuration>

希望这会有所帮助!

答案 1 :(得分:0)

如下所示设置spark-submit参数可以解决问题

HDFS:///名称节点:8020 // // TMP some.conf