Hadoop2.6集群动态添加和删除数据节点
2019獨角獸企業重金招聘Python工程師標準>>>
? ? ?開始之前,應該把所有新增數據節點上的Hadoop環境都配置好(如果要直接復制已經存在節點的hadoop文件夾,應該刪掉里面已經產生的集群數據,比如tmp和data目錄,不然會出問題)
?
Step1:關閉新加入數據節點的防火墻。
Step2:在各個節點上把新增節點的hosts信息補充完整
Step3:在兩個NameNode上,打通向新增數據節點無密鑰SSH登錄的通道。
Step4:在兩個NameNode上的dfs.hosts指定的白名單文件中追加上所有新增的數據節點的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上啟動datanode和nodemanager進程:
sbin/hadoop-daemon.sh?start?datanode
sbin/yarn-daemon.sh start nodemanager
用新增節點用jps查看進程,可在master節點通過yarn node -list查看集群情況
Step7:均衡block(非必須,根據集群情況設定)
./bin/start-balancer.sh1) 如果不balance,那么cluster會把新的數據都存放在新的node上,這樣會降低mapred的工作效率
2) 設置平衡閾值,默認是10%,值越低各節點越平衡,但消耗時間也更長
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進程,需要先關閉再重新啟動。
?
轉載于:https://my.oschina.net/aibati2008/blog/633961
總結
以上是生活随笔為你收集整理的Hadoop2.6集群动态添加和删除数据节点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新来乍到,谢谢大家捧场
- 下一篇: SQL Server 2005数据库可疑