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進程,須要先關閉再從新啓動。

相關文章
相關標籤/搜索