HBase集群在CentOS上的擴容步驟
/etc/hosts文件中,確保Master能通過主機名識別新節點;配置SSH免密登錄(Master與新節點之間),便于后續命令遠程執行。hbase snapshot命令或HDFS的hdfs dfs -copyToLocal命令備份關鍵表數據,防止操作失誤導致數據丟失。$HBASE_HOME/conf/hbase-env.sh文件,確認JAVA_HOME(指向JDK安裝路徑,如/usr/lib/jvm/java-11-openjdk)和HBASE_HOME(指向HBase安裝路徑,如/opt/hbase)配置正確。$HBASE_HOME/conf/hbase-site.xml,確保以下關鍵參數與現有集群一致:<property><name>hbase.rootdir</name><value>hdfs://namenode:8020/hbase</value></property> <!-- HDFS存儲路徑 -->
<property><name>hbase.zookeeper.quorum</name><value>master1,slave1,slave2</value></property> <!-- ZooKeeper集群地址 -->
<property><name>hbase.cluster.distributed</name><value>true</value></property> <!-- 分布式模式 -->
slave3)添加到Master節點的/etc/hosts文件中,格式為<IP地址> <主機名>。# 啟動HDFS(若未啟動)
$HADOOP_HOME/sbin/start-dfs.sh
# 啟動YARN(可選,若使用YARN)
$HADOOP_HOME/sbin/start-yarn.sh
# 啟動HBase RegionServer
$HBASE_HOME/bin/start-hbase.sh
jps命令檢查新節點是否運行HRegionServer進程。list命令,查看RegionServer列表是否包含新節點;或訪問Master Web UI(默認http://<master-ip>:16010),在“Region Servers” tab中確認新節點狀態為“online”。$HADOOP_HOME/etc/hadoop/core-site.xml(設置fs.defaultFS為HDFS NameNode地址)和hdfs-site.xml(設置dfs.datanode.data.dir為本地存儲路徑,如/data/hdfs/datanode),確保與現有集群配置一致。$HADOOP_HOME/sbin/start-dfs.sh,并在NameNode節點執行hdfs dfsadmin -report,查看新DataNode是否加入集群。hdfs balancer -threshold 10 # 閾值設為10%(默認),表示集群不平衡度超過10%時開始平衡
hdfs dfsadmin -report查看各DataNode存儲使用率差異)。hbase.master.loadbalancer.class參數設置為StochasticLoadBalancer),可通過修改hbase-site.xml調整負載均衡策略(如hbase.regionserver.handler.count增加RegionServer處理線程數,hbase.regionserver.global.memstore.size調整MemStore大?。?。hbase balancer命令,等待平衡完成后會顯示“Balancing succeeded”。hbase shell
assign 'table_name,start_key,end_key,new_region_server' # 將指定表的Region遷移到新節點
user_table表的所有Region遷移到slave3節點:list_regions 'user_table' # 先查看表的Region分布
assign 'user_table,,1234567890abcdef', 'slave3' # 遷移第一個Region
hbase.regionserver.handler.count(默認30,建議設置為100-200);若MemStore頻繁刷寫,可調整hbase.regionserver.global.memstore.size(默認0.4,建議設置為0.3-0.5)。hbase org.apache.hadoop.hbase.mapreduce.ImportTsv導入大量數據),對比擴容前后的讀寫性能(如QPS、延遲),確認擴容達到預期效果。