当我们想从spark连接hdfs时,只需将hadoop\u conf\u dir设置为,而不是将各种参数传递给spark conf
export HADOOP_CONF_DIR=/etc/hadoop/conf
/usr/hdp/current/spark-client/bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --executor-memory 1G --num-executors 3 /usr/hdp/current/spark-client/lib/spark-examples*.jar 100
spark如何处理hadoop\u conf\u dir?这些配置文件是如何传递给hadoop的
1条答案
按热度按时间4dc9hkyq1#
1hadoop\ conf\ dir和spark-env.sh
在使用Yarn运行spark时,您需要将以下行添加到
spark-env.sh
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
注意:在您的环境中检查$hadoop\u home/etc/hadoop是否正确。以及spark-env.sh
包含hadoop\u home的导出。确保hadoop\u conf\u dir或yarn\u conf\u dir指向包含hadoop集群的(客户端)配置文件的目录。这些配置用于写入hdfs并连接到yarn resourcemanager。此目录中包含的配置将分发到yarn集群,以便应用程序使用的所有容器都使用相同的配置。
2spark-defaults.conf格式
所有与内存相关的配置都将在
spark-defaults.conf
文件。在集群模式下运行spark-on-yarn时,需要使用conf/spark-defaults.conf文件中的spark.yarn.appmasterenv.[environmentvariablename]属性设置环境变量。在spark-env.sh中设置的环境变量不会反映在集群模式下的Yarn应用主进程中。有关更多信息,请参阅与Yarn相关的Spark特性。三。用app manager配置覆盖配置
根据spark文档,很明显,如果您配置了yarn cluster manager,那么它将覆盖spark-env.sh设置。你能在yarn env或yarn站点文件中签入本地dir文件夹设置吗。
“这将被群集管理器设置的spark\u local\u dirs(standalone,mesos)或local\u dirs(yarn)环境变量覆盖。”https://spark.apache.org/docs/2.3.1/configuration.html