Hadoop记录-HDFS balancer配置

HDFS balancer配置(可通过CM配置)
dfs.datanode.balance.max.concurrent.moves

并行移动的block数量,默认5

dfs.datanode.balance.bandwidthPerSec

Balance工具所占用的带宽,默认1048576(1MB)

dfs.balancer.moverThreads

用于执行block移动的线程池大小,默认1000

dfs.balancer.max-size-to-move

每次balance进行迭代的过程最大移动数据量,默认10737418240(10GB)

dfs.balancer.getBlocks.size

获取block的数量,默认2147483648(2GB)

dfs.balancer.getBlocks.minblock-size

用来平衡的最小block大小,默认10485760(10MB)

dfs.datanode.blockpinning.enabled

    hdfs balancer

          [-threshold <threshold>]

          [-policy <policy>]

          [-exclude [-f <hosts-file> | <comma-separated list of hosts>]]

          [-include [-f <hosts-file> | <comma-separated list of hosts>]]

          [-idleiterations <idleiterations>]

参数说明:

-threshold

某datanode的使用率和整个集群使用率的百分比差值阈值,达到这个阈值就启动hdfs balancer,取值从1到100,不宜太小,因为在平衡过程中也有数据写入,太小无法达到平衡

-policy

分为blockpool和datanode,前者是block pool级别的平衡后者是datanode级别的平衡

-exclude

不为空,则不在这些机器上进行平衡

-include

不为空,则仅在这些机器上进行平衡

-idleiterations  最大迭代次数

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

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

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

猜你喜欢

转载自www.cnblogs.com/xinfang520/p/10513848.html