如何在 HDFS 重新平衡器 运行 后保留 HBase 数据局部性?或者如何将数据从一个特定的数据节点移动到另一个?
How to retain HBase data locality after HDFS rebalancer is run? Or else how to move data from one specific datanode to another?
我的一个数据节点使用了 70% 的磁盘 space 而其他的只使用了 30%。如何将部分数据从 70% 的磁盘节点迁移到其他节点。但是我不能使用HDFS rebalance,因为Hbase在HDFS上是运行,数据rebalance可能会导致Hbase丢失数据局部性。
tl;dr:您要求的功能尚不属于 HDFS。
有一张 JIRA 票证 HDFS-1312 用于跟踪开发工作。正如您的问题所述,建议的数据节点平衡器旨在解决数据节点未均匀填满磁盘的问题。幸运的是,该功能正在积极开发中,我们可以预期它会在几个月(而不是几年)内合并回 Hadoop 版本。
在 JIRA link 中,在功能发布之前有两个解决方法:
- 手动重新平衡存储目录中的块
- 停用节点并稍后读取它们
但是,请小心手动操作。
我认为你可用的硬盘格式是相同的。如果你想要70%的数据迁移,那么你使用分区方法。
创建不同格式的硬盘分区。
然后挂载硬盘,随意使用。
我的一个数据节点使用了 70% 的磁盘 space 而其他的只使用了 30%。如何将部分数据从 70% 的磁盘节点迁移到其他节点。但是我不能使用HDFS rebalance,因为Hbase在HDFS上是运行,数据rebalance可能会导致Hbase丢失数据局部性。
tl;dr:您要求的功能尚不属于 HDFS。
有一张 JIRA 票证 HDFS-1312 用于跟踪开发工作。正如您的问题所述,建议的数据节点平衡器旨在解决数据节点未均匀填满磁盘的问题。幸运的是,该功能正在积极开发中,我们可以预期它会在几个月(而不是几年)内合并回 Hadoop 版本。
在 JIRA link 中,在功能发布之前有两个解决方法:
- 手动重新平衡存储目录中的块
- 停用节点并稍后读取它们
但是,请小心手动操作。
我认为你可用的硬盘格式是相同的。如果你想要70%的数据迁移,那么你使用分区方法。
创建不同格式的硬盘分区。
然后挂载硬盘,随意使用。