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、延迟),确认扩容达到预期效果。