hadoop2.7.1不重啓,動態刪除節點和新增節點

hadoop重啓太麻煩了,須要暫停當前全部的任務。因此動態的刪除和新增節點就很重要了。java

先說動態刪除節點:node

(配置爲可動態刪除節點,這個是要重啓的,之後須要動態刪除節點時,就不用重啓了。)進入hadoop目錄的etc/hadoop/目錄web

1.增長excludes文件,每行寫一個要刪除的節點的主機名負載均衡

2.在hdfs-site.xml中增長
oop

<property>
<name>dfs.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>
</property>

3.在mapred-site.xml中增長測試

<property>
<name>mapred.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>
<final>true</final>
</property>


這樣,若是須要刪除某一節點,只需把該節點的主機名寫入excludes文件,而後執行(僅在namenode上修改文件,執行命令便可)spa

hadoop dfsadmin -refreshNodes

查看節點狀態hadoop dfsadmin -report或者web管理端頁面,能夠看到該節點是decomissioning狀態,等它變化爲decomissioned,就能夠把這個節點拿掉了。拿掉後,該節點上進程仍是都在的,直接kill便可。日誌

動態新增節點:code

由於我是把刪除的節點從新加上,因此環境之類的就不用配置了。直接使用原來的就行。xml

在節點上執行,/data/hadoop/etc/hadoop/是配置文件目錄,這是啓動datanode

hadoop-daemon.sh --config /data/hadoop/etc/hadoop/ --script hdfs start nodemanager

而後啓動nodemanager

yarn-daemons.sh --config /data/hadoop/etc/hadoop/ start nodemanager

這條命令是啓動了全部slave主機的nodemanager,因此執行中會報錯,其餘的主機已啓動。

我看有的帖子經過如下命令啓動:

hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager

個人啓動了,這兩個命令就不試了。朋友們測試後能夠告訴我哦~(已測試過了,成功,第二種啓動更合理)

而後,刪除前文中的excludes文件中該節點的主機名,執行刷新操做便可。

hadoop dfsadmin -refreshNodes

至此,能夠看到已經新增了該節點的datanode。

hadoop的數據的負載均衡:

執行如下命令,-threshold 5這個參數能夠不寫,默認是10

start-banlancer.sh -threshold 5

而後就能夠查看日誌了,在哪臺機器上執行該命令,日誌就在哪臺機器上。

tail -f /data/hadoop/logs/hadoop-hadoop-balancer-hostname.log

靜等均衡完畢!

相關文章
相關標籤/搜索