我正在尝试使用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协议正斜杠。任何帮助将在这里表示赞赏。
答案 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