hbase故障恢复

分布式系统的现状,难以区分一个响应慢的节点和一个死掉的节点,所有的rpc流程都是基于timeout机制,我们期望更少的超时时间,则意味着有更高的误判率,误判的情况下hbase容错性虽然很好,但总要付出一些数据恢复的代价。

  故障恢复主要牵涉到的组件有zk,hmaster namenode。zk承担锁机制的角色,一段时间未收到regionserver发来的心跳消息(180s),则会判断该节点发生故障,hmaster就会发起recovery流程:

    1、数据恢复,namenode将未关闭的hlog文件关闭,regionserver读取hlog文件到hdfs文件系统中region对应的目录下并创建recovery.edits临时文件,region重新打开时会读取recovery.edits文件的数据,并将hfile中不存在的数据写到memory中,然后flush到hfile中。

    2、assign region,处于转移状体的region会在zk的创建一个RIT节点来保存region的状态。hmaster将故障的regionserver上的region 重新分配到其他的regionserver上。

优化处理方案:

      split log优化处理,将元数据的hlog与用户表的hlog分离,优先将元数据的表恢复,以前的方案是所有的数据都是在一个hlog下,元数据表需要等到用户表数据恢复完之后才会上线,经优化后,元数据表可以优先上线,而且恢复速度快,在故障还未恢复完全的情况下,除了故障regionserver上的region不能读写其他的regionserver都能够正常提供服务。

     减少需要恢复的数据,设置定时flush定量flush memory中的数据到hdfs。

     引入datanode的stale状态,,在网络延时的情况下,datanode先感知到网络的异常,设置状态为stale,停止写入数据。regionserver不会讲stale状态的datanode当成primary来recovery,这样减少了recovery过程中datenode的等待时间。

 

转载于:https://www.cnblogs.com/xmchene/p/3968545.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值