要实现HBase集群的高可用部署(High Availability, HA),核心在于消除单点故障(特别是HMaster节点),并确保数据冗余和服务自动恢复。以下是、关键步骤和配置要点:
一、核心配置步骤
1.1 启用多HMaster
在$HBASE_HOME/conf/目录下创建backup-masters文件,添加备用Master的主机名(每行一个)。
hadoop02 # 备用Master节点1
hadoop03 # 备用Master节点2
将此文件分发到所有节点.
1.2 关键配置文件修改
hbase-env.sh
:
禁用内置ZooKeeper:export HBASE_MANAGES_ZK=false(必须使用独立ZooKeeper集群)。
设置Java路径:export JAVA_HOME=/path/to/jdk。
hbase-site.xml
配置ZooKeeper集群地址:
<property><name>hbase.zookeeper.quorum</name><value>zk-node1,zk-node2,zk-node3</value>
</property>
启用HDFS作为底层存储:
<property><name>hbase.rootdir</name><value>hdfs://hadoop-ha-ns/hbase</value> <!-- HDFS HA路径 -->
</property>
启用复制功能(可选):<name>hbase.replication.enabled</name><value>true</value>
软链接Hadoop配置:
ln -s $HADOOP_HOME/etc/hadoop/core-site.xml $HBASE_HOME/conf/
ln -s $HADOOP_HOME/etc/hadoop/hdfs-site.xml $HBASE_HOME/conf/
RegionServer配置:在regionservers文件中列出所有RegionServer节点主机名
二、集群部署与启动
同步配置:将配置完成的HBase目录分发到所有节点(包括Master和RegionServer)。
启动顺序:
先启动ZooKeeper集群和HDFS集群(确保HDFS HA已配置)。
在所有节点启动HBase服务:
主/备Master节点:执行hbase-daemon.sh start master。
RegionServer节点:执行hbase-daemon.sh start regionserver(或使用start-hbase.sh群启)。
三、高可用验证
3.1 访问Web UI
主Master:http://<active-master>:16010
备Master:http://<standby-master>:16010(显示"Backup Master"状态)
3.2 故障切换测试
- 手动停止主Master进程,观察备用Master自动接管(日志显示"Active Master"变更)。
- 使用HBase Shell执行读写操作,验证服务无中断
四、关键注意事项
ZooKeeper会话超时:设置zookeeper.session.timeout=30000(单位毫秒,建议20-30秒),避免过早触发故障转移。
HDFS依赖:HBase依赖HDFS存储数据,需确保HDFS集群高可用(如NameNode HA)
资源隔离:Master与RegionServer可部署在同一节点,但生产环境建议分离(尤其是大型集群)
数据冗余:HDFS默认3副本机制保障数据高可用,无需额外配置
通过上述配置,HBase集群可在主Master故障时自动切换至备用节点,结合HDFS数据冗余和ZooKeeper协调机制,实现服务高可用与数据可靠性。