ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CDH使用Disk Balancer平衡磁盘HDFS数据

2021-08-06 11:02:46  阅读:452  来源: 互联网

标签:HDFS 04 19 18 08 CDH Balancer plan 磁盘


文章目录

前言

当集群磁盘空间不足时,需要增加新硬盘到机器,此时新加入的磁盘空间基本为空,而旧磁盘则已占用很多。网上则是通过增减副本的方式达到磁盘平衡方式,但如果磁盘空间大小本身不一致,通过该方法平衡后,磁盘空间不平衡情况依然存在。从 CDH 5.8.2 开始,Cloudera Manager提供了一个全面的存储容量管理解决方案,可以跨节点 (Balancer)、存储类型(Mover)和单个DataNode中的磁盘(磁盘平衡器)。

启用磁盘平衡器

在HDFS配置中搜索safety valve,在HDFS服务高级配置代码段(安全阀)创建名称为dfs.disk.balancer.enabled,值为true的键值对。
启用磁盘级数据平衡

生成磁盘平衡器任务

假设目前有disk1和disk2两个磁盘,其占用率分别为:

# df -h
….
/var/disk1      5.8G  3.6G  1.9G  66% /mnt/disk1
/var/disk2      5.8G   13M  5.5G   1% /mnt/disk2

显然上述两个磁盘需要进行磁盘平衡,假设要平衡的主机名称为lei-dn-3.example.org,通过如下命令可以生成磁盘平衡任务:

# hdfs diskbalancer -plan lei-dn-3.example.org
16/08/19 18:04:01 INFO planner.GreedyPlanner: Starting plan for Node : lei-dn-3.example.org:20001
16/08/19 18:04:01 INFO planner.GreedyPlanner: Disk Volume set 03922eb1-63af-4a16-bafe-fde772aee2fa Type : DISK plan completed.Th
16/08/19 18:04:01 INFO planner.GreedyPlanner: Compute Plan for Node : lei-dn-3.example.org:20001 took 5 ms
16/08/19 18:04:01 INFO command.Command: Writing plan to : /system/diskbalancer/2016-Aug-19-18-04-01

默认生成任务的目录为/system/diskbalancer/{时间}/{机器名}.plan.json

注意:任务生成的目录是在HDFS的文件系统内,而不是本机目录。

通过如下命令可以查询生成的JSON文件:

# hdfs dfs -ls /system/diskbalancer/2016-Aug-19-18-04-01
Found 2 items
-rw-r--r--   3 hdfs supergroup       1955 2016-08-19 18:04 /system/diskbalancer/2016-Aug-19-18-04-01/lei-dn-3.example.org.before.json
-rw-r--r--   3 hdfs supergroup        908 2016-08-19 18:04 /system/diskbalancer/2016-Aug-19-18-04-01/lei-dn-3.example.org.plan.json

-ls后面跟着的是上一步生成计划的时间,可以看到有格式如{机器名}.plan.json文件夹(不是一个文件)。

执行磁盘平衡任务

$ hdfs diskbalancer -execute /system/diskbalancer/2016-Aug-17-17-03-56/172.26.10.16.plan.json
16/08/17 17:22:08 INFO command.Command: Executing "execute plan" command

此命令将磁盘平衡任务提交给 DataNode,后者会在后台 BlockMover 线程中执行。

查询磁盘平衡任务是否完成

# hdfs diskbalancer -query lei-dn-3.example.org
16/08/19 21:08:04 INFO command.Command: Executing "query plan" command.
Plan File: /system/diskbalancer/2016-Aug-19-18-04-01/lei-dn-3.example.org.plan.json
Plan ID: ff735b410579b2bbe15352a14bf001396f22344f7ed5fe24481ac133ce6de65fe5d721e223b08a861245be033a82469d2ce943aac84d9a111b542e6c63b40e75
Result: PLAN_DONE

输出 (PLAN_DONE) 表示磁盘平衡任务已完成。为验证磁盘平衡器的有效性,可再次使用df -h命令查看两个本地磁盘之间的数据分布情况。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
….
/var/disk1      5.8G  2.1G  3.5G  37% /mnt/disk1
/var/disk2      5.8G  1.6G  4.0G  29% /mnt/disk2

默认磁盘平衡器达到配置文件中的重新平衡阈值,则视为数据已平衡完毕。默认阈值为10.0,即磁盘空间占用偏差在10%以内,则认为磁盘平衡任务已完成。

参考来源

How-to: Use the New HDFS Intra-DataNode Disk Balancer in Apache Hadoop

标签:HDFS,04,19,18,08,CDH,Balancer,plan,磁盘
来源: https://blog.csdn.net/GerZhouGengCheng/article/details/119447783

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有