apache-spark - Spark如何处理HADOOP_CONF_DIR?

标签 apache-spark hadoop

当我们想从Spark连接HDFS时,我们只是将HADOOP_CONF_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_CONF_DIR?这些配置文件如何传递到Hadoop?

最佳答案

1. HADOOP_CONF_DIR和spark-env.sh
使用Yarn运行spark时,您需要在spark-env.sh中添加以下行export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop注意:在您的环境中检查$ HADOOP_HOME / etc / hadoop是否正确。 spark-env.sh也包含HADOOP_HOME的导出。
确保HADOOP_CONF_DIR或YARN_CONF_DIR指向包含Hadoop集群的(客户端)配置文件的目录。这些配置用于写入HDFS并连接到YARN ResourceManager。此目录中包含的配置将分发到YARN群集,以便应用程序使用的所有容器都使用相同的配置。
2. spark-defaults.conf
您所有与内存相关的配置都将在spark-defaults.conf文件中。
在集群模式下在YARN上运行Spark时,需要使用conf / spark-defaults.conf文件中的spark.yarn.appMasterEnv。[EnvironmentVariableName]属性设置环境变量。在spark-env.sh中设置的环境变量将不会在群集模式下的YARN Application Master进程中反射(reflect)出来。有关更多信息,请参见YARN相关的Spark属性。
3.使用应用程序管理器配置覆盖配置
根据spark文档,可以明确地说,如果您配置了Yarn Cluster Manager,则它将覆盖spark-env.sh设置。您能否仅在Yarn-env或yarn-site文件中 checkin 本地dir文件夹设置。
“这将被集群管理器设置的SPARK_LOCAL_DIRS(独立,Mesos)或LOCAL_DIRS(YARN)环境变量覆盖。”来源-https://spark.apache.org/docs/2.3.1/configuration.html

关于apache-spark - Spark如何处理HADOOP_CONF_DIR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63229858/

相关文章:

azure - pyspark 读取 csv 文件有限制吗?

hadoop - mapreduce作业未执行

java - Java Spark如何将JavaPairRDD <HashSet <String>,HashMap <String,Double >>保存到文件?

java - 用Pig将二进制文件存储到hbase

json - 提交作业以引发冲突的 jackson 依赖项?

scala - 如何合并SPARK数据框创建的文件夹中的所有零件文件并重命名为scala中的文件夹名称

scala - 从Spark作业中调用JDBC进行Impala/Hive并创建表

java - 在 Spark 流式转换中使用第三方不可序列化对象

java - 通过java程序读取大型输入文件(10gb)

hadoop - 在 Hive 中将 Long 转换为时间戳