hdfs moveFromLocal 不跨数据节点分布副本块
hdfs moveFromLocal does not distribute replica blocks across data nodes
我最近将 Cloudera 环境从 5.8.x (hadoop 2.6.0, hdfs-1) 升级到 6.3.x (hadoop 3.0.0, hdfs-1) 在使用 moveFromLocal
加载数据几天后,我才意识到 DFS Used% 我执行 moveFromLocal
的数据节点服务器比其他服务器多 3 倍。
然后在我加载数据的 hdfs 路径上设置 运行 fsck
和 -blocks
、-locations
和 -replicaDetails
标志;我观察到复制块 (RF=2) 在同一台服务器上 all 并且不会分发到其他节点,除非我手动 运行 hdfs balancer
.
一个月前有人问过一个相关问题,
hdfs put/moveFromLocal not distributing data across data nodes?,并没有真正回答任何问题;我一直加载的文件是镶木地板文件。
Cloudera 5.8.x没有这样的问题。我应该在 Cloudera 6 中进行一些新配置吗?3.x 与复制、机架感知或类似的东西相关?
非常感谢任何帮助。
根据 HDFS Architecture 文档,"For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on the local machine if the writer is on a datanode..."
根据同一份文件,"Because the NameNode does not allow DataNodes to have multiple replicas of the same block, maximum number of replicas created is the total number of DataNodes at that time."
您可能正在对其中一个数据节点执行 moveFromLocal。似乎您需要从非数据节点执行 moveFromLocal 才能在集群上获得均匀分布。
我最近将 Cloudera 环境从 5.8.x (hadoop 2.6.0, hdfs-1) 升级到 6.3.x (hadoop 3.0.0, hdfs-1) 在使用 moveFromLocal
加载数据几天后,我才意识到 DFS Used% 我执行 moveFromLocal
的数据节点服务器比其他服务器多 3 倍。
然后在我加载数据的 hdfs 路径上设置 运行 fsck
和 -blocks
、-locations
和 -replicaDetails
标志;我观察到复制块 (RF=2) 在同一台服务器上 all 并且不会分发到其他节点,除非我手动 运行 hdfs balancer
.
一个月前有人问过一个相关问题, hdfs put/moveFromLocal not distributing data across data nodes?,并没有真正回答任何问题;我一直加载的文件是镶木地板文件。
Cloudera 5.8.x没有这样的问题。我应该在 Cloudera 6 中进行一些新配置吗?3.x 与复制、机架感知或类似的东西相关?
非常感谢任何帮助。
根据 HDFS Architecture 文档,"For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on the local machine if the writer is on a datanode..."
根据同一份文件,"Because the NameNode does not allow DataNodes to have multiple replicas of the same block, maximum number of replicas created is the total number of DataNodes at that time."
您可能正在对其中一个数据节点执行 moveFromLocal。似乎您需要从非数据节点执行 moveFromLocal 才能在集群上获得均匀分布。