如何更改Spark程序的HDFS复制因子?

时间:2017-09-07 13:49:32

标签: scala hadoop apache-spark hdfs

我需要将Spark程序的HDFS复制因子从3更改为1。在搜索时,我想出了" spark.hadoop.dfs.replication"财产,但通过查看https://spark.apache.org/docs/latest/configuration.html,它似乎不再存在。那么,如何从我的Spark程序或使用spark-submit?

更改hdfs复制因子

2 个答案:

答案 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