优化Hadoop Balancer运行速度
2016-05-17 15:13
441 查看
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、循环执行,直到达到平衡标准
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、循环执行,直到达到平衡标准
相关文章推荐
- Linux与JVM的内存关系分析
- 在linux中执行sysctl -p时的一个报错
- 《Linux4.0设备驱动开发详解》笔记--第二章:Linux内核及内核编程
- How to Install Zabbix 3.0 Beta on CentOS 6
- Tomcat中关于内存的几个参数介绍
- archlinux中c语言的rpc编程
- Apache Spark Jobs 性能调优(二)
- Linux系统上安装mysql(rpm方式安装)
- 虚拟机性能监控与故障处理工具
- Windows和Linux下枚举文件夹下文件的方法
- tomcat 性能优化
- Spark 内存架构
- 腾讯云Centos6.6搭建javaweb环境:mysql5.1+jdk1.7+tomcat6完整过程
- 架构漫谈(九):理清技术、业务和架构的关系
- .xsession-errors:openConnection: connect: No such file or directory cannot connect to brltty at :0
- 架构漫谈(八):从架构的角度看如何写好代码
- OpenMP常用指令释义
- nginx+nagios使用用户名密码鉴权设置
- 架构漫谈(七):不要空设架构师这个职位,给他实权
- 架构漫谈(六):软件架构到底是要解决什么问题?