2015-12-13 36 views
2

我該如何解決這個問題?目標副本是10但發現3副本

/tmp/hadoop-yarn/staging/ubuntu/.staging/job_1450038005671_0025/job.jar: Under replicated BP-938294433-10.0.1.190-1450037861153:blk_1073744219_3398. Target Replicas is 10 but found 3 replica(s). 

我在我的主節點運行hadoop fsck /時得到了這個。 我想我應該改變一個.xml文件在conf或類似的東西我只是不知道要更改哪個文件。

請注意dfs.replicationhdfs-site.xml已被設置爲3.我的hdfs-site.xml文件中沒有dfs.replication.max

回答

6

作爲作業一部分提交的文件(罐子等)的複製計數由mapred-site.xml中的參數mapreduce.client.submit.file.replication(或2.4版集羣中的mapred.submit.replication)控制。您可以對小於10個節點的羣集進行調整,或者忽略來自fsck的消息。

FWIW,有一個JIRA爲此,但我懷疑它會永遠得到工作。

1

HDFS的配置文件hdfs-site.xml應該包含dfs.replication屬性描述塊複製因子:

<configuration> 
    <property> 
    <name>dfs.replication</name> 
    <value>3</value> 
    </property> 
</configuration> 

默認hdfs-site.xml位置/etc/hadoop/hdfs-site.xml

+0

它在該文件中設置爲3,所以我不確定爲什麼我得到這個錯誤!? –

+1

這是另一個問題:)嘗試在配置文件中將'dfs.replication.max'屬性設置爲3。 – maxteneff

+0

請參閱更新。我的'hdfs-site.xml'中沒有'dfs.replication.max'作爲屬性。 –

1

可以忽略。 /tmp/hadoop-yarn/staging/ubuntu/.staging/job_1450038005671_0025/job.jar,這是一份工作資源。 dfs.replication不會對作業資源產生影響。採用10作爲複製因子

  1. 工作資源,如jar文件,使用-files(分佈式緩存)通過的文件將被複制到HDFS
  2. 當作業運行時,這些工作資源(代碼)將被複制到容器/任務以處理數據
  3. 根據閾值完成作業後,這些資源將自動回收。

該功能有助於在處理數據時實現數據局部性(代碼轉到數據)。