目标副本数为 10 但找到 3 个副本

Target Replicas is 10 but found 3 replica

我该如何解决这个问题?

/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 / 时得到了这个。 我假设我应该更改 conf 中的 .xml 文件或类似的文件我只是不知道要更改哪个文件。

请注意 hdfs-site.xml 中的 dfs.replication 已设置为 3。我的 hdfs-site.xml 文件中没有 dfs.replication.max

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

可以忽略。 /tmp/hadoop-yarn/staging/ubuntu/.staging/job_1450038005671_0025/job.jar,是作业资源。 dfs.replication 对工作资源没有影响。

  1. 作业资源,例如 jar 文件、使用 -files(分布式缓存)传递的文件将使用 10 作为复制因子复制到 HDFS
  2. 当作业运行时,这些作业资源(代码)将被复制到container/task来处理数据
  3. 根据阈值完成作业后,这些资源将自动回收。

此功能有助于在处理数据时实现数据局部性(代码转到数据的位置)。

作为作业的一部分提交的文件(jar 等)的复制计数由 mapred-[=17= 中的参数 mapreduce.client.submit.file.replication(或 2.4 之前的集群中的 mapred.submit.replication)控制].对于小于 10 个节点的集群,您可以将其调低,或者忽略来自 fsck 的消息。

FWIW,对此有 JIRA,但我怀疑它是否会奏效。