hdfs Balancer工具使用

简介: Balancer工具可以用来分析块的分布情况,并且可以重新分配DataNode中的数据。本文通过为您介绍如何使用Balancer工具以及Balancer的使用过程中的常见问题。

一  、准备工作

1  了解hdfs写数据的副本机制,数据倾斜的可能情况

以默认的副本数=3为例:

1)第一个副本块保存在客户端所在的 DataNode 上;

2)第二个副本块保存在客户端所在 DataNode 同机架内的其他 DataNode 上;

3)第三个副本块保存不同机架的某个 DataNode 上。

2  准备数据,制造数据倾斜

在某一个dn节点的客户端上传大量数据,会导致当前dn的使用率高于其他节点

3 了解 Balancer工具

Balancer工具可以用来分析块的分布情况,并且可以重新分配DataNode中的数据。

HDFS命令语句如下。

hdfs balancer [-threshold <threshold>] [-policy <policy>] [-exclude [-f <hosts-file> | <comma-separatedlistofhosts>]] [-include [-f <hosts-file> | <comma-separatedlistofhosts>]] [-source [-f <hosts-file> | <comma-separatedlistofhosts>]] [-blockpools <comma-separatedlistofblockpoolids>] [-idleiterations <idleiterations>]


二、使用Balancer

1、登录到客户端节点

2、切换到hdfs用户并执行Balancer参数。

/usr/lib/hadoop-current/sbin/start-balancer.sh -threshold  5


3、执行以下命令,进入hadoop-hdfs目录。

cd /var/log/hadoop-hdfs

4、执行ll命令,查看Balancer日志。

5、执行以下命令,查看Balancer运行情况。

tail -f /var/log/hadoop-hdfs/hadoop-hdfs-balancer-emr-header-xx.cluster-xxx.log

由于迁移的数据比较多,这个均衡会在后台执行,日志中会一直刷新如下迁移过程中的打印:


刷新节点的使用率,当前节点的磁盘使用率一直在下降的过程中

执行完以后的日志:


均衡后的结果:


三、常见问题

1 如上图的截图,为什么设置threshold为5 均衡以后,各个节点之间的最大值和最小值相差却大于5?

这是因为,在均衡的时候,会计算一个平均值,比如一开始的

50.84/4 = 12.71 ,那么其实只会迁移 12.71+ 5  =17.71 的往上部分的数据。

而迁移完的数据,16.89已经小于17.71,所以集群认为各个节点之间已经均衡。

2   因为迁移时会占用集群资源,并且并不是左右节点都需要做均衡的,如果只是想均衡使用率很高和使用率很低的节点之间的数据,应该怎么办呢?

是可以通过blockpools参数,指定部分节点间做数据均衡的。

相关文章
|
存储 分布式计算 Hadoop
深入浅出:Hadoop的start-balancer.sh与hdfs balancer分布式数据均衡
Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点。当HDFS出现不平衡状况的时候,将引发很多问题,比如:1、MR程序无法很好地利用本地计算的优势2、机器之间无法达到更好的网络带宽使用率,机器磁盘无法利用等等。
3561 0
|
存储 分布式计算 Hadoop
Hadoop2.7实战v1.0之start-balancer.sh与hdfs balancer数据均衡
Hadoop2.7实战v1.0之start-balancer.sh与hdfs balancer数据均衡【修正版】 适用场景: a.
3399 0
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
182 6
|
2月前
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
70 3
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
51 4
|
2月前
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
80 5
|
2月前
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
37 4
|
2月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
175 5
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
102 3
|
2月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
135 4