hadoop复制因子混淆

use*_*086 4 hadoop

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

dfs.replication.max = 10
dfs.replication.min = 1
dfs.replication     = 2
Run Code Online (Sandbox Code Playgroud)

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

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

  1. 在安全模式下,它会检查块的复制是否达到dfs.replication.min.
  2. dfs.replication.min是同步处理的.剩余的dfs.replication-dfs.replication.min是异步处理的.

所以我们必须在每个节点(namenode + datanode)上或仅在客户端节点上设置这些配置?

如果上述三个设置的设置因不同的数据节点而异,该怎么办?

Rah*_*rma 12

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

设置文件的复制因子 - 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. 您可以为常用文件块设置高复制因子,以在群集上分配读取负载.