前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0882-7.1.6-如何对HDFS进行节点内(磁盘间)数据平衡

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

作者头像
Fayson
发布2022-07-19 17:45:12
1.8K0
发布2022-07-19 17:45:12
举报
文章被收录于专栏:Hadoop实操

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节点查看磁盘是否挂载正常

代码语言:javascript
复制
lsblk
df -hl

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

4.刷新过期配置

5.点击刷新集群

6.刷新完成,此操作不会重启集群

7.查看HDFS容量是否增加

8.登陆DataNode节点查看是否创建该目录生成文件

3.节点内Balancer

1.登陆CM界面,进入HDFS点击配置,搜索“hdfs-site.xml”添加以下内容后并重启HDFS服务

代码语言:javascript
复制
dfs.disk.balancer.enabled=true

2.使用系统的hdfs.keytab进行认证,一般在/var/run/cloudera-scm-agent/process/1952-hdfs-JOURNALNODE  目录下等,或者自己生成

代码语言:javascript
复制
kinit -kt hdfs.keytab hdfs/c1.liuhao.com
klist

3.典型的磁盘平衡器任务涉及三个步骤(通过HDFS的diskbalancer 命令):plan, execute 和 query。第一步,HDFS客户端从NameNode上读取指定DataNode的的必要信息以生成执行计划:

磁盘平衡执行计划生成的文件内容格式是Json的,并且存储在HDFS之上。在默认情况下,这些文件是存储在 /system/diskbalancer 目录下面。

4.可以通过下面的命令在DataNode上执行这个生成的计划:

代码语言:javascript
复制
hdfs diskbalancer -execute /system/diskbalancer/2021-Oct-20-21-42-55/c1.liuhao.com.plan.json

5.以上命令将JSON里面的计划提交给DataNode,而DataNode会启动一个名为BlockMover的线程中执行这个计划。我们可以使用 query 命令来查询DataNode上diskbalancer任务的状态:

代码语言:javascript
复制
hdfs diskbalancer -query c1.liuhao.com

上面结果输出的PLAN_DONE表示disk-balancing task已经执行完成。为了验证磁盘平衡器的有效性,我们可以使用df -h 命令来查看各个磁盘的空间使用率:

Balancer前:

Balancer后

6.如果集群节点磁盘不均衡,可以在CM界面打开重新均衡

4.总结

1.HDFS磁盘扩容首先需要检查磁盘是否单独挂载数据盘,不能和系统盘共用。

2.节点内Balancer需要使用系统hdfs.keytab才能执行成功。

3.典型的磁盘平衡器任务涉及三个步骤(通过HDFS的diskbalancer 命令):plan, execute 和 query。

4.如果想扩容的节点都平衡,需要每台DataNode节点都按照第三章做一遍。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档