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

     开始之前,应该把所有新增数据节点上的Hadoop环境都配置好(如果要直接复制已经存在节点的hadoop文件夹,应该删掉里面已经产生的集群数据,比如tmp和data目录,不然会出问题)


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

Step2:在各个节点上把hosts信息补充完整

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

Step4:在两个NameNode上的dfs.hosts指定的白名单文件中追加上所有新增的数据节点的hostname,并且保证在dfs.hosts.exclude指定的黑名单文件中不含有新增的数据节点的hostname,需要更改下hdfs-site.xml

 

        <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 -refreshNodes

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

Step6:在两个NameNode节点上,更改slaves文件,将要上线的数据节点hostname追加到slaves文件中。在slave上启动tasktracker进程:运行:hadoop-daemon.sh start datanode,用jps查看进程 


数据节点的删除和上述步骤类似,只不过在master上修改tasktracker-deny.list。真个操作的过程中都不涉及集群的重启~



重新加入各个删除的节点

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

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

hadoop dfsadmin -refreshNodes  

3,在slave上重启tasktracker进程:

hadoop-daemon.sh start datanode

PS:如果之前没有关闭该slave上的tasktracker进程,需要先关闭再重新启动。



你可能感兴趣的:(Hadoop2.6集群动态添加和删除数据节点)