hdfs moveFromLocal 不会跨数据节点分发副本块

bel*_*lce 6 replication hadoop hdfs cloudera cloudera-cdh

我最近将 Cloudera 环境从 5.8.x(hadoop 2.6.0,hdfs-1)升级到 6.3.x(hadoop 3.0.0,hdfs-1),经过几天的数据加载后moveFromLocal,我才意识到DFS 使用我执行的数据节点服务器的百分比是其他服务器moveFromLocal的 3 倍。

然后将具有运行fsck-blocks-locations-replicaDetails标志到我加载数据的HDFS路径; 我观察到复制块(RF = 2)是所有相同的服务器上,而不是被分发到其他节点,除非我手动运行hdfs balancer

一个月前问过一个相关的问题, hdfs put/moveFromLocal 不跨数据节点分发数据?,它并没有真正回答任何问题;我不断加载的文件是镶木地板文件。

Cloudera 5.8.x 没有这个问题。我应该在 Cloudera 6.3.x 中进行一些与复制、机架感知等相关的新配置吗?

任何帮助将不胜感激。

maz*_*cha 2

根据HDFS 架构文档,“对于常见情况,当复制因子为 3 时,HDFS\xe2\x80\x99s 放置策略是,如果写入器位于数据节点上,则将一个副本放在本地计算机上......”

\n\n

根据同一篇文档,“由于NameNode 不允许 DataNode 拥有同一块的多个副本,因此创建的最大副本数是当时 DataNode 的总数。”

\n