hadoop复制因子混淆

时间:2014-05-22 06:48:10

标签: hadoop

我们有3个hadoop复制设置,即:

dfs.replication.max = 10
dfs.replication.min = 1
dfs.replication     = 2

所以dfs.replication是hadoop集群中文件的默认复制,直到hadoop客户端使用“ setrep ”手动设置它。 并且hadoop客户端可以将最大复制设置为 dfs.replication.mx

dfs.relication.min用于两种情况:

  1. 在安全模式下,它会检查块的复制是否达到 dfs.replication.min
  2. 同步处理
  3. dfs.replication.min 。剩余的dfs.replication-dfs.replication.min是异步处理的。
  4. 所以我们必须在每个节点(namenode + datanode)或仅在客户端节点上设置这些配置?

    如果不同数据节点的上述三种设置的设置有所不同,那该怎么办?

1 个答案:

答案 0 :(得分:12)

无法为群集中的任何特定节点设置复制因子,您可以为整个群集/目录/文件设置它。可以在hdfs-sie.xml中运行的集群中更新dfs.replication

设置文件的复制因子 - hadoop dfs -setrep -w <rep-number> file-path

或者为目录或整个群集递归设置 - hadoop fs -setrep -R -w 1 /

使用最小和最大重复因子 -

  1. 在将数据写入datanode时,许多数据节点可能会失败。如果写入dfs.namenode.replication.min个副本,则写入操作成功。写入操作后,块会异步复制,直到达到dfs.replication级别。

  2. 最大复制因子dfs.replication.max用于设置块的复制限制。创建文件时,用户无法将块复制设置为超过限制。

  3. 您可以为常用文件块设置高复制因子,以在群集上分配读取负载。