我需要将Spark程序的HDFS复制因子从3更改为1。在搜索时,我想出了" spark.hadoop.dfs.replication"财产,但通过查看https://spark.apache.org/docs/latest/configuration.html,它似乎不再存在。那么,如何从我的Spark程序或使用spark-submit?
更改hdfs复制因子答案 0 :(得分:1)
HDFDS配置与Spark没有任何关系。您应该能够使用标准Hadoop配置文件对其进行修改。特别是hdfs-site.xml
:
<property>
<name>dfs.replication<name>
<value>3<value>
<property>
也可以使用SparkContext
实例访问Hadoop配置:
val hconf: org.apache.hadoop.conf.Configuration = spark.sparkContext.hadoopConfiguration
hconf.setInt("dfs.replication", 3)
答案 1 :(得分:1)
您应该使用spark.hadoop.dfs.replication
在spark应用程序中设置HDFS中的复制因子。但为什么你在https://spark.apache.org/docs/latest/configuration.html中找不到它?这是因为该链接 ONLY 包含特定于spark的配置。事实上,您使用spark.hadoop.*
开始设置的任何属性都将自动转换为Hadoop属性,剥离开头&#34; spark.haddoop.
&#34;。您可以在https://github.com/apache/spark/blob/d7b1fcf8f0a267322af0592b2cb31f1c8970fb16/core/src/main/scala/org/apache/spark/deploy/SparkHadoopUtil.scala
您应该寻找的方法是appendSparkHadoopConfigs