我们有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用于两种情况:
所以我们必须在每个节点(namenode + datanode)或仅在客户端节点上设置这些配置?
如果不同数据节点的上述三种设置的设置有所不同,那该怎么办?
答案 0 :(得分:12)
无法为群集中的任何特定节点设置复制因子,您可以为整个群集/目录/文件设置它。可以在hdfs-sie.xml中运行的集群中更新dfs.replication
。
设置文件的复制因子 - hadoop dfs -setrep -w <rep-number> file-path
或者为目录或整个群集递归设置 - hadoop fs -setrep -R -w 1 /
使用最小和最大重复因子 -
在将数据写入datanode时,许多数据节点可能会失败。如果写入dfs.namenode.replication.min
个副本,则写入操作成功。写入操作后,块会异步复制,直到达到dfs.replication
级别。
最大复制因子dfs.replication.max
用于设置块的复制限制。创建文件时,用户无法将块复制设置为超过限制。
您可以为常用文件块设置高复制因子,以在群集上分配读取负载。