spark、hadoop動態增減節點

之前在搭建實驗環境的時候按部就班的配置好,然後就啓動了。後來再一琢磨,有點不對勁。分佈式系統的一個優勢就是動態可伸縮性,如果增刪節點需要重啓那肯定是不行的。後來研究了一下,發現的確是不需要重啓的。仍以spark和hadoop爲例:

對於spark來說很簡單,增加一個節點就是命令啓動: ./sbin/start-slave.sh spark://<master>:7077 ,就完成了新節點的註冊和加入集羣。停止的時候是: ./sbin/stop-slave.sh。之後在master的管理端會顯示這個節點已經“死掉”了。然而這條信息會一直顯示到重啓master爲止。如果希望下次自動啓動這個新節點,把這個節點名稱加入到conf/slaves文件裏。

對於hadoop來說略複雜一點,因爲1.x版本和2.x版本有比較大的差異,不少教程說的還是1.x版本的做法,我這裏是以2.7爲例。

增加hdfs數據節點
在此節點上啓動hdfs:./sbin/hadoop-daemon.sh start datanode(後臺模式)  或./bin/hdfs datanode(控制檯模式),如果希望下次自動啓動,修改集羣裏機器的所有slaves配置文件

刷新節點信息:
./bin/hdfs dfsdmin -refreshNodes

啓動後可以均衡數據,使用命令
./sbin/start-balancer.sh
卸載節點

卸載節點一般不建議直接停掉,需要先將其排除在集羣之外,編輯配置文件:etc/hadoop/hdfs-core.xml

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

在datanode-deny.list中加入要卸載的節點名稱

刷新節點信息:

./bin/hdfs dfsdmin -refreshNodes會看到節點變成Dead和Decommissioned狀態

最後再停止節點:./sbin/hadoop-daemon.sh stop datanode

增減任務節點在2.x版本里貌似和spark一樣,不用再麻煩的設置了:

啓動:
./sbin/yarn-daemon.sh start nodemanager(後臺模式)  或./bin/yarn nodemanager(控制檯模式)

停止:
./sbin/yarn-daemon.sh stop nodemanager

題外話,以前習慣用virtualbox的 vboxmanage clonehd命令克隆磁盤在增加新虛擬機,後來發現這樣的克隆是初始的硬盤狀態,一旦做過snapshot,就不能把後續的狀態克隆進去,這就不方便了。所以改用vboxmanage clonevm <old_vm>  --name <new_vm> --mode all,就可以原樣克隆了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章