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,就可以原樣克隆了。
本文出自 “空空如也” 博客,謝絕轉載!
spark、hadoop動態增減節點