版本:hadoop2.2.0
一 、节点数据平衡
近期发现,试验环境2个datanode节点,往hdfs put数据,无数据备份情况下每次都只往节点1写数据,于是想自己动手平衡一下数据。
操作:
在hadoop sbin目录下的脚本start-balancer.sh,调整平衡的范围
执行脚本 ./start-balance.sh -threshold 5
以上命令的意思是先统计hdfs利用率,比如node1 20%,node2 2%,整个集群利用率为11%,平衡的范围是(11%+x%,11%-x%)这里的参数x是5,因此平衡范围是(16%,6%),节点1超出,节点2不足,节点1的数据块往节点2移动
执行命令后发现数据移动特别慢,移动2GB的数据,花费时间超过1个小时,原因是默认的节点间数据移动速度是1MB/s,可以修改数据平衡带宽,有两种修改方法,方式一:修改hdfs-site.xml文件的配置,增加以下配置:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
</property>
方式二:动态修改
hdfs dfsadmin -setBalancerBandWidth 10485760
后面的参数的单位是Byte
二、节点删除