1.数据块恢复
当某台机器上的一个DataNode进程down掉,HDFS为了保证文件的副本满足设定的副本数,会进行数据块的恢复操作。块恢复操作主要受两个参数影响:
a)dfs.namenode.replication.work.multiplier.per.iteration NameNode计算集群每个周期每个DataNode平均恢复的数据块数量;如果该参数配置得太小,则dfs.namenode.replication.max-streams配置得再大没有用;
b)dfs.namenode.replication.max-streams单个DataNode最大同时恢复的块数量,可以间接控制DataNode恢复数据块的带来的网络等压力;
同时,数据块恢复与文件系统读写文件一样,不会受限制移动数据块参数的限制,该参数做balance的时候才起作用:
hdfs dfsadmin -setBalancerBandwidth 62914563
1.1数据块恢复测试场景
以上所有测试场景文件大小为1MB,3台作为DataNode的机器为内存大小为16GB,网卡为1000Mb。(下面所有的网络图以最右边的一个波形图作为测试的网络值)
1.1.1 测试场景1
参数dfs.namenode.replication.max-streams=600,需要恢复数据块数量18016,两个DataNode节点参与恢复,则每个节点平均需要恢复9008。
开始时间:14:18
结束时间:14:27
则每个节点1分钟修复