Zookeeper在HBase中的应用
所属分类 bigdata
浏览量 1492
HBase 用 Zookeeper 实现HMaster选举与主备切换、系统容错、RootRegion管理、Region状态管理和分布式SplitWAL任务管理等。
HMaster选举与主备切换
启动多个HMaster, 譬如启动2个 一个 active 一个 standby
在某 regionserver上启动 Hmaster
hbase-daemon.sh start master
启动HBase集群:
bin/start-hbase.sh
单独启动一个HMaster进程:
bin/hbase-daemon.sh start master
单独停止一个HMaster进程:
bin/hbase-daemon.sh stop master
单独启动一个HRegionServer进程:
bin/hbase-daemon.sh start regionserver
单独停止一个HRegionServer进程:
bin/hbase-daemon.sh stop regionserver
RegionServer rs状态节点
/hbase/rs /hbase/rs/$hostname
HMaster 监听该节点
RegionServer 挂掉 Session 失效 ,该节点会被删除
HMaster 接收到 NodeDelete 通知
为何不直接让HMaster来监控RegionServer呢?
如果HMaster通过心跳等机制来监控RegionServer ,随着集群越来越大,HMaster的管理负担会越来越重,
另外它自身也有挂掉的可能,因此数据还需要持久化。
使用 ZooKeeper 是不错的选择。
RootRegion管理
数据存储位置信息 元数据region RootRegion
/hbase/meta-region-server
当RootRegion发生变化,比如Region的手工移动、重新负载均衡或RootRegion所在服务器发生了故障等,
能够通过ZooKeeper来感知到这一变化并做出一系列相应的容灾措施,保证客户端拿到正确的RootRegion信息。
Region管理
Region变更的原因来自于系统故障、负载均衡、配置修改、Region分裂与合并等。
一旦Region发生移动,就会经历下线(offline)和重新上线(online)的过程。
分布式SplitWAL任务管理
WAL 日志回放 replay
将处理WAL的任务分给多台 RegionServer 共同处理
/hbase/SplitWAL
RegionServer 领取任务 并更新处理结果
HBase zk 操作封装 org.apache.hadoop.hbase.zookeeper
上一篇
下一篇
git恢复删除的文件
git branch 和 git checkout常见用法
hive数据仓库
elasticsearch中的DocValues
zab协议
hive