1. 程式人生 > >hadoop+Spark+hbase集群動態增加節點

hadoop+Spark+hbase集群動態增加節點

控制臺 完成 卸載 nag block cluster dfs clust width

分布式系統的一個優勢就是動態可伸縮性,如果增刪節點需要重啟那肯定是不行的。後來研究了一下,發現的確是不需要重啟集群,直接在新增的節點上分別啟動以下進程即可:以hadoop、spark和hbase為例:

一、hadoop增加datanode節點

因為1.x版本和2.x版本有比較大的差異,我這裏是以2.7為例。
在namenode節點上,將hadoop-2.7復制到新節點上,並在新節點上刪除data和logs目錄中的文件。

1、增加hdfs數據節點datanode

在此節點上啟動hdfs:

./sbin/hadoop-daemon.sh start datanode     # (後臺模式)  
或
./bin/hdfs datanode                        # (控制臺模式)

2、下次自動啟動,

修改集群裏機器的所有$HADOOP_HOME/etc/hadoop/slaves配置文件,添加該節點。

3、刷新節點信息:

./bin/hdfs dfsdmin -refreshNodes

4、查看hdfs節點狀態:即有多少個節點

./bin/hdfs dfsadmin –report

5、啟動後可以均衡數據,使用命令

./sbin/start-balancer.sh

如果不balance,那麽cluster會把新的數據都存放在新的node上,這樣會降低工作效率:
查看hdfs節點狀態:

hdfsdfsadmin –report
1048576(=1Mb/s)
104857600(=100Mb/s)
hdfsdfsadmin -setBalancerBandwidth 104857600

#設置不同節點之間復制數據的帶寬是受限的,默認是1MB/s

start-balancer.sh -threshold 1

#設置如果某個datanode的磁盤裏使用率比平均水平高出1%,Blocks向其他低於平均水平的datanode中傳送, 也就是每個節點使用率相差不超過1%。
或者:

start-balancer.sh
stop-balancer.sh

6、卸載節點

卸載節點一般不建議直接停掉,需要先將其排除在集群之外,

編輯配置文件:$HADOOP_HOME/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

7、增加NodeManager任務節點

####啟動:

./sbin/yarn-daemon.sh start nodemanager    # (後臺模式)  
或
./bin/yarn nodemanager                     # (控制臺模式)

####停止:

./sbin/yarn-daemon.sh stop nodemanager

二、spark新增worker節點

1、增加一個節點就是在該節點執行:

./sbin/start-slave.sh spark://<master>:7077

就完成了新節點的註冊和加入集群。

2、新增節點啟動驗證

執行jps命令,slave可以看到Worker進程

3、查看Spark UI

看到Workers中有新增節點

4、停止節點:

./sbin/stop-slave.sh

之後在master的管理端會顯示這個節點已經“死掉”了。然而這條信息會一直顯示到重啟master為止。

5、希望下次自動啟動這個新節點,

把這個節點名稱加入到$SPARK_HOME/conf/slaves文件裏。

三、hbase新增RegionServer

1、啟動HRegionServer進程

hbase-daemon.shstart regionserver 

2、啟動HquorumPeer進程

hbase-daemon.shstart zookeeper 

3、查看集群狀態

hbase shell中輸入status

4、負載均衡:

hbase shell中輸入:balance_switch true

hadoop+Spark+hbase集群動態增加節點