优化Hadoop Balancer运行速度

简介: 1.修改dfs.datanode.max.transfer.threads = 4096 (如果运行hbase的话建议为16384),指定用于在DataNode间传输block数据的最大线程数,老版本的对应参数为dfs.
  1. 1.修改dfs.datanode.max.transfer.threads = 4096 (如果运行hbase的话建议为16384),指定用于在DataNode间传输block数据的最大线程数,老版本的对应参数为dfs.datanode.max.xcievers

     2.修改dfs.datanode.balance.bandwidthPerSec  = 52428800,指定DataNode用于balancer的带宽为50MB,这个示情况而定,如果交换机性能好点的,完全可以 设定为100MB,单位是Byte,如果机器的网卡和交换机的带宽有限,可以适当降低该速度,默认是1048576(1MB)


    3.修改dfs.datanode.balance.max.concurrent.moves = 50,指定DataNode上同时用于balance待移动block的最大线程个数,这个值默认是5


     如果配置没生效或者不合理的话,Balancer会有如下警告信息:

16/05/17 11:54:59 WARN balancer.Dispatcher: Failed to move blk_1075360746_1920035 with size=134217728 from 192.168.28.48:50010:DISK to 192.168.28.37:50010:DISK through 192.168.28.40:50010: Got error, status message opReplaceBlock BP-647596829-192.168.28.30-1448614319339:blk_1075360746_1920035 received exception java.io.IOException: Got error, status message Not able to copy block 1075360746 to /192.168.28.37:39630 because threads quota is exceeded., copy block BP-647596829-192.168.28.30-1448614319339:blk_1075360746_1920035 from /192.168.28.40:50010, block move is failed


Hadoop Balancer的步骤:

1、从namenode获取datanode磁盘的使用情况
2、计算需要把哪些数据移动到哪些节点
3、分别移动,完成后删除旧的block信息
4、循环执行,直到达到平衡标准


目录
相关文章
|
5天前
|
数据采集 分布式计算 监控
Hadoop集群长时间运行数据倾斜原因
【6月更文挑战第20天】
17 6
|
5天前
|
分布式计算 监控 网络协议
Hadoop集群长时间运行网络延迟原因
【6月更文挑战第20天】
10 2
|
19天前
|
存储 分布式计算 算法
|
2天前
|
分布式计算 Hadoop Java
优化大数据处理:Java与Hadoop生态系统集成
优化大数据处理:Java与Hadoop生态系统集成
|
5天前
|
存储 缓存 分布式计算
|
6天前
|
存储 分布式计算 负载均衡
Hadoop集群长时间运行
【6月更文挑战第19天】
12 3
|
11天前
|
分布式计算 安全 Hadoop
Hadoop执行Balancer程序
【6月更文挑战第15天】
18 4
|
14天前
|
存储 分布式计算 资源调度
如何优化Hadoop集群的内存使用?
【6月更文挑战第18天】如何优化Hadoop集群的内存使用?
31 6
|
19天前
|
分布式计算 Hadoop Java
运行Hadoop自带的wordcount单词统计程序
运行Hadoop自带的wordcount单词统计程序
21 3
|
20天前
|
存储 分布式计算 固态存储
Hadoop性能优化硬件和网络优化
【6月更文挑战第7天】
24 3