在hadoop中重新平衡单个数据节点

5n0oy7gb  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(332)

hadoop常见问题解答:
http://wiki.apache.org/hadoop/faq#on_an_individual_data_node.2c_how_do_you_balance_the_blocks_on_the_disk.3f
他们确实给出了单数据节点不平衡的解决方案,但我仍然有疑问。
假设我有2个磁盘:“/disk1”和“/disk2”。每个磁盘中都有数据目录“/data”。因此有2个数据目录“/disk1/data”和“/disk2/data”。问题是:
我能把“/disk1/data/current”中的块和元对移到“/disk2/data/current/”吗?

f0ofjuux

f0ofjuux1#

是的,您可以在磁盘之间安全地移动块对(blk\u x数据文件和blk\u x*.meta crc文件)(在父级当前/或适当的 Block-Pool ID 的当前/目录),但请确保此操作时特定的datanode已关闭。
你也可以移动整个子目录(你会发现它们被命名为 subdirX (x是一个生成的数字)从一个磁盘到另一个磁盘,无需担心,并将块从任何子目录移动到任何其他子目录-只要datanode关闭,就不需要担心路径的粘性。

5w9g7ksd

5w9g7ksd2#

将成为hadoop 3的hdfs的一部分:
https://issues.apache.org/jira/browse/hdfs-1312 (在hdfs 3.0中添加)
相关-可用空间容量EchoosingPolicy-https://issues.apache.org/jira/browse/hdfs-1804 (在hdfs2.1中添加)-这不是默认值,但我们在生产中使用它。基本上可用的空间卷EchoosingPolicy允许卷最终达到平衡,因为在分配新块时,首选具有更多空间的磁盘。

相关问题