做Hadoop集群维护大概有4年多了,其中有小三年都在维护cdh版本的集群,下面就千节点集群的HDFS调优写一下个人心得,大家可以给我指正错误的地方。
1、dfs.block.size, dfs.blocksize
该参数在5.13.1版本的cdh的默认块大小为128M,此参数事需要根据输入文件的大小以及计算是生产的map来总和考量。一般来说,文件大,集群数量少,还是建议将block size设置大一些的好。目前我维护的千节点集群设置是1GB。
2、balance参数
由于每天的数据较大,并且伴有坏盘或者下线的机器,还有新增的机器也会很频繁,所以集群基本每天都在做balance,偏差值我设置了5%也涉及了同时移动副本数,以及平衡带宽,目前看状态还可以。
3、单个节点balance
hdfs-site.xml的高级代码段里增加dfs.disk.balancer.enabled 值设置为true
hdfs diskbalancer -plan cdh3(需要均衡的机器) 会生成一个*.plan.json的文件
hdfs diskbalancer -execute /system/diskbalancer/2017-Jun-26-10-10-14/cdh04.plan.json
hdfs diskbalancer -query cdh04
DONE的时候表示已经执行完毕
4、并行移动块数
maximum concurrent moves 这个参数编写的数值一定要考虑好自己现有集群的带宽,还有自己设置的副本大小,大了容易拥堵网络,小了速度又太慢。
5、平衡带宽数
dfs.balance.bandwidth.persec
dfs.datanode.balance.bandwidth.persec
并行允许的移动块总数,修改此值时建议衡量集群之间带宽以及每个块大小。
6、datanode接受坏卷数
dfs.datanode.faile

本文分享了作者在维护CDH5.13版本Hadoop集群时进行HDFS调优的经验,包括调整dfs.block.size、设置平衡参数、启用diskbalancer、控制并行移动块数、设定带宽限制、处理坏卷数、副本数管理、安全与权限认证、调整NameNode堆栈和处理线程数等关键操作。

3103

被折叠的 条评论
为什么被折叠?



