Hadoop2.6集群动态添加和删除数据节点

     开始以前,应该把全部新增数据节点上的Hadoop环境都配置好(若是要直接复制已经存在节点的hadoop文件夹,应该删掉里面已经产生的集群数据,好比tmp和data目录,否则会出问题)node

 

Step1:关闭新加入数据节点的防火墙。web

Step2:在各个节点上把新增节点的hosts信息补充完整安全

Step3:在两个NameNode上,打通向新增数据节点无密钥SSH登陆的通道。oop

Step4:在两个NameNode上的dfs.hosts指定的白名单文件中追加上全部新增的数据节点的hostname,须要更改下hdfs-site.xml,黑名单文件用于排除集群中的节点spa

 

        <property>
                <name>dfs.hosts</name>
                <value>/usr/hadoop/etc/hadoop/datanode-allow.list</value>
        </property>
        <property>
                <name>dfs.hosts.exclude</name>
                <value>/usr/hadoop/etc/hadoop/datanode-deny.list</value>
        </property>

 

Step5:在namenode上执行以下刷新命令:hdfs dfsadmin -refreshNodescode

          可经过hdfs dfsadmin -report或者master:50070 web端口查看当前集群节点状态xml

Step6:在两个NameNode节点上,更改slaves文件,将要上线的数据节点hostname追加到slaves文件中。在slave上启动datanode和nodemanager进程:进程

sbin/hadoop-daemon.sh start datanodehadoop

sbin/yarn-daemon.sh start nodemanager同步

用新增节点用jps查看进程,可在master节点经过yarn node -list查看集群状况

Step7均衡block(非必须,根据集群状况设定)

./bin/start-balancer.sh

1) 若是不balance,那么cluster会把新的数据都存放在新的node上,这样会下降mapred的工做效率
2) 设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长

hdfs balancer -threshold 5

3) 设置balance的带宽,默认只有1M/s

hdfs dfsadmin -setBalancerBandwidth 67108864


 

 

数据节点的删除和上述步骤相似,只不过在master1上修改datanode-allow.list和datanode-deny.list,还有slaves文件而且同步到master2上。整个操做的过程当中都不涉及集群的重启~等待刷新的操做结束后,须要下架的机器就能够安全的关闭了。

[root@master  hadoop]# ./bin/ hdfs dfsadmin -refreshNodes
[root@master  hadoop]# ./bin/ hadoop dfsadmin -report

能够查看到如今集群上链接的节点

正在执行Decommission,会显示:
Decommission Status : Decommission in progress  

执行完毕后,会显示:
Decommission Status : Decommissioned

 

 

 

从新加入各个删除的节点

1,在master的datanode-deny.list删除相应机器

2,在master上刷新节点配置状况:

hadoop dfsadmin -refreshNodes  

3,在slave上重启tasktracker进程:

hadoop-daemon.sh start datanode

PS:若是以前没有关闭该slave上的datanode进程,须要先关闭再从新启动。

相关文章
相关标签/搜索