CentOS HBase集群扩容技巧分享
hbase-site.xml、hdfs-site.xml、core-site.xml)需与现有集群完全一致,重点检查hbase.rootdir(指向HDFS统一路径,如hdfs://namenode:8020/hbase)、hbase.zookeeper.quorum(ZooKeeper集群地址)等关键参数。16000(Master)、16020(RegionServer)、9000(HDFS))。所有节点需使用ntp或chrony同步时间(误差≤1秒),避免因时间不一致导致Region分配失败。hbase snapshot命令对关键表创建快照(如hbase shell> snapshot 'my_table', 'my_table_snapshot'),或备份HDFS上的HBase数据目录(/hbase),防止操作失误导致数据丢失。systemctl start hbase-regionserver。若启动失败,需检查日志(/var/log/hbase/hbase-regionserver.log)排查问题(常见原因:配置文件错误、ZooKeeper连接失败、端口冲突)。hbase shell> list查看RegionServer列表,或通过Master Web界面(默认http://master:16010)确认新节点状态为“online”。hbase balancer命令让HBase自动重新分配Region,使数据均匀分布到新节点。若需强制立即均衡,可添加-f参数(hbase balancer -f)。负载均衡期间可能会有短暂性能下降,建议在低峰期操作。core-site.xml(fs.defaultFS指向NameNode)、hdfs-site.xml(dfs.datanode.data.dir指定数据目录),并将新节点信息添加到slaves文件(NameNode节点)。启动DataNode服务:systemctl start hadoop-hdfs-datanode。hdfs dfsadmin -report,查看“Live datanodes”列表,确认新节点已加入。hdfs dfsadmin -setSpaceQuota <new_quota> /hbase(<new_quota>为配额大小,如10T)。hbase-site.xml中的核心参数:
hbase.regionserver.handler.count:RegionServer处理请求的线程数(建议设置为CPU核心数的1.5~2倍,默认30,可调整为100);hbase.regionserver.global.memstore.size:RegionServer全局MemStore占堆内存的比例(默认0.4,若写入量大可调整为0.5);hbase.hregion.memstore.flush.size:单个Region的MemStore刷写阈值(默认128MB,大表可调整为256MB);hbase.regionserver.balance.max.thread:负载均衡时的最大线程数(默认1,大集群可调整为10)。systemctl restart hbase-master → systemctl restart hbase-regionserver),注意重启期间集群不可用,需在维护窗口操作。hbase_regionserver_cpu_usage)、内存(hbase_regionserver_mem_usage)、磁盘I/O(hbase_regionserver_disk_io)、Region数量(hbase_regionserver_regions_count)等指标,及时发现资源瓶颈。/var/log/hbase/hbase-master.log)和RegionServer(/var/log/hbase/hbase-regionserver.log)日志,关注“ERROR”“WARN”级别的日志(如Region分配失败、MemStore溢出),快速定位并解决问题。hbase balancer(每周1~2次),确保数据分布均匀。若发现某些RegionServer负载过高,可手动触发负载均衡或调整StochasticLoadBalancer的权重参数(如hbase.master.loadbalancer.tablesOnMasterWeight)。hbase-site.xml,开启自动负载均衡功能:<property>["是", "hbase.master.balance.enable", "true"],
<property>["是", "hbase.master.balance.check.interval", "60000"]</property>
重启HBase Master使配置生效。cron定时任务(如每天凌晨2点执行),减少人工干预。