HBase(08)——HBase Region管理及容错性

Region管理

1、region分配

任何时刻,一个region只能分配给一个region server。
master记录了当前有哪些可用的region server。以及当前哪些region分配给了哪些region server,哪些region还没有分配。
当需要分配新的region,并且有一个region server上有可用空间时,master就给这个region server发送一个装载请求,把region分配给这个region server。region server得到请求后,就开始对此region提供服务。

2、region server上线

master使用zookeeper来跟踪region server状态。
当某个region server启动时,会首先在zookeeper上的server目录下建立代表自己的znode。
由于master订阅了server目录上的变更消息,当server目录下的文件出现新增或删除操作时,master可以得到来自zookeeper的实时通知。因此一旦region server上线,master能马上得到消息。

3、region server下线

当region server下线时,它和zookeeper的会话断开,zookeeper会自动释放代表这台server的文件上的独占锁。master获得zookeeper的消息后就可以确定:
——region server和zookeeper之间的网络断开了。
——region server挂了。
也就是region server无法继续为它的region提供服务了,此时master会删除server目录中代表这台region server的znode数据,并将这台region server的region分配给其它活着的region server。

Master工作机制

1、master上线

从zookeeper上获取唯一一个代表active master的锁,用来阻止其它master成为活着的master。
扫描zookeeper上的servermaster启动进行以下步骤:
通过父节点,获得当前可用的region server列表。
和每个region server进行通信,获得当前已分配的region和region server的对应关系。
扫描.META.region的集合,计算得到当前还未分配的region,将他们放入待分配region列表。

2、master下线

由于master只维护表和region的元数据,而不参与表数据IO的过程,master下线仅导致所有元数据的修改被冻结(无法创建删除表,无法修改表的schema,无法进行region的负载均衡,无法处理region 上下线,无法进行region的合并,唯一例外的是region的split可以正常进行,因为只有region server参与),表的数据读写还可以正常进行。因此master下线短时间内对整个hbase集群没有影响。

HBase容错性

Zookeeper容错:

Zookeeper是一个可靠地服务,一般配置3或5个Zookeeper实例

Master容错:

Zookeeper会重新选择一个新的Master
无Master过程中,数据读取仍照常进行;
无Master过程中,负载均衡无法进行;

RegionServer容错:

定时向Zookeeper汇报心跳,如果一旦时间内未出现心跳,Master将该RegionServer上的Region重新分配到其他RegionServer上,失效服务器上“预写”日志由主服务器进行分割并派送给新的RegionServer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值