如何对HDFS进行节点内(磁盘间)数据平衡

Posted 格格巫 MMQ!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何对HDFS进行节点内(磁盘间)数据平衡相关的知识,希望对你有一定的参考价值。

1.文档编写目的

当HDFS的DataNode节点挂载多个磁盘时,往往会出现两种数据不均衡的情况:

1.不同DataNode节点间数据不均衡;

2.挂载数据盘的磁盘间数据不均衡。

特别是这种情况:当DataNode原来是挂载了几个数据盘,当磁盘占用率很高之后,再挂载新的数据盘。由于Hadoop 2.x 版本并不支持HDFS的磁盘间数据均衡,因此,会造成老数据磁盘占用率很高,新挂载的数据盘几乎很空。在这种情况下,挂载新的数据盘就失去了扩容HDFS数据盘的意义。

如果想要解决节点内多块磁盘数据不均衡的现象,就要借助DiskBalancer。在CDH5.8.2+版本中,可以通过在CM中配置进行开启,但属于实验室功能。在CDP7中,因为是Hadoop3,默认就支持磁盘间数据均衡,本文档主要介绍在CDP中如何进行HDFS磁盘扩容并在节点内进行Balancer。

测试环境:
1.Redhat7.6

2.采用root用户操作

3.CM版本为7.3.1

4.CDH版本为 7.1.6

2.HDFS磁盘扩容

1.登陆CM界面查看数据目录情况

2.登陆所有DataNode节点查看磁盘是否挂载正常

lsblk
df -hl
复制

3.在CM界面添加新挂载的目录,并保存配置

以上是关于如何对HDFS进行节点内(磁盘间)数据平衡的主要内容,如果未能解决你的问题,请参考以下文章

转载漫谈HADOOP HDFS BALANCER

HDFS Balancer流程(上)

HDFS体系结构

HDFS balancer详解

Hadoop3 - HDFS Block 负载平衡以及 Disk 平衡

Hadoop3 - HDFS Block 负载平衡以及 Disk 平衡