美文网首页
九、宕机恢复原理

九、宕机恢复原理

作者: loukey_j | 来源:发表于2020-01-13 13:54 被阅读0次

1、Master负载并不很高,基本采用热备的方式来实现Master高可用

2、RegionServer宕机的恢复主要原因有。

2.1、Full GC异常

2.2、HDFS异常

2.3、物理节点宕机

2.4、HBase Bug

3、RegionServer故障恢复原理

3.1、利用ZK临时节点机制,RS在启动会在ZK注册成临时节点,同时Master会Watch这个节点,一般情况下RegionServe会周期性的向ZK发送心跳,如果在超时时间内没有收到心跳,临时节点就会离线,这个消息马上会通知给到Master,Master检测到RS宕机

3.2、切分未持久化的HLog日志,HLog包含多个Region的数据,为了能够按照Region一个个进行数据恢复,首先需要对HLog按照Region进行分组。把同一个Region的日志放一块,便于一个个Region回放。

3.3、Master重新分配宕机RegionServer上的region,将这些Region重新分配到其他可用的RS上。

3.4、按照Region回放HLog

3.5、完成修复,对外提供服务

4、HLog切分大有学问

4.1、0.96版本之前的切分策略:Master单机切分HLog

4.1.1、将待切分的日志重命名,主要防止在某些情况下RS并没有真正宕机,但是Master已经在进行故障恢复了,但是RS还在接受写入请求导致数据不一致。重命名之后此时用户的请求就会异常终止。

4.1.2、读取HLog数据对数据按照Region分组。

4.1.3、切分完成之后Master会对每个Region HLog数据写入各个Region对应的HDFS目录。

4.1.4、Region对日志按顺序进行会回放。

缺点:如果需要恢复的数据有几十G 或者更大,Master单机切片的搞法可能需要数小时。

4.2、分布式切分HLog策略

4.2.1、Master将待切分的日志路径发布到ZK节点上,每个日志为一个任务,每个任务都有对应的状态,起始状态为TASK_UNASSIGNED

4.2.2、RS启动之后都注册这个节点等待新任务,一旦Master发布任务,RS就会抢占该任务

4.2.3、抢占任务先看任务状态,如果是TASK_UNASSIGNED,则说明没有被抢占,然后尝试去修改状态为TASK_OWEND,如果修改成功,表名任务抢占成功。如果修改失败说明被别的RS抢占了。

4.2.4、RS抢占任务成功了之后,将任务分给相应的线程处理,如果处理成功则修改状态为TASK_DONE;如果失败,则状态修改为TASK_ERR。

4.2.5、Master一直监听ZK节点状态的变更,如果状态为TASK_ERR,则重新发布任务,如果成功则删除对应的节点。

4.2.6、分布式切分举例

1)假设Master当前发布了4个任务,即当前需要回放4个日志文件HLog1(H1)、HLog2(H2)、HLog3(H3)、Hlog4(h4)

2)假设RS1抢占了H1,H2;RS2抢占了H3;RS3抢占到了H4

3)以RS1为例,他会把H1,H2,分给2个HlogSpliter线程进行处理,HLogSpliter负责对日志文件执行具体的切分,

具体切分步骤用4.1策略差不多

优点:通过多RS同时执行HLog切分,解决了Master单机切分带来的耗时长的问题

缺点:假设一个宕机的RS上有200个Region,有90个Hlog,由于每个HLog都需要按Region分组,所以这种切分方法会产生90*200=18 000 个小文件。

4.4、分布式日志回放策略

相比分布式切分HLog策略,流程上主要改动了两点

1)、不是先切分在分配Region,而是先分配Region之后再进行Hlog切分,并且此时的Region是recovering状态,可以对外提供写服务

2)、切分HLog逻辑同4.2区别是分布式回放策略并没有先写入文件,而是直接回放。

这种设计大大减少小文件的IO消耗,解决4.2的短板。

相关文章

  • 九、宕机恢复原理

    1、Master负载并不很高,基本采用热备的方式来实现Master高可用 2、RegionServer宕机的恢复主...

  • zookeeper的zab协议与Nacos的Raft协议

    zab一致性算法原理,以zookeeper为例zab原子广播协议中 两种模式1.恢复模式:Leader宕机后选举新...

  • HBase宕机恢复-SplitWAL

    HBase检测宕机是通过Zookeeper实现的, 正常情况下RegionServer会周期性向Zookeeper...

  • 服务无缘无故宕机

    定时服务无缘无故宕机了,服务相关日志没有任何错误日志。首先报告领导恢复业务排查问题监控服务 服务宕机了 因服务没有...

  • 转载--日志

    问题概述 在分布式系统中,宕机是需要考虑的重要组成部分。日志技术是宕机恢复的重要技术之一。日志技术应用广泛,早些更...

  • 在MySQL中如何使用覆盖索引优化limit分页查询

    背景 今年3月份时候,线上发生一次大事故。公司主要后端服务器发生宕机,所有接口超时。宕机半小时后,又自动恢复正常。...

  • 分布式架构原理解析

    分布式架构原理解析 1. 分布式术语 1.1. 异常 服务器宕机 内存错误、服务器停电等都会导致服务器宕机,此时节...

  • Redis 日志篇:无畏宕机快速恢复的杀手锏 笔记

    title: Redis 日志篇:无畏宕机快速恢复的杀手锏 笔记date: 2021/03/16 10:01src...

  • rabbitMQ故障恢复与故障转移

    以下节点中,A代表主master,B代表从Slave。 情景一:无损坏,可恢复停机、宕机 重启即可。 情景二:A、...

  • postgres备份

    | | 备份速度|备份范围|恢复范围|操作影响|备份原理|恢复成本|| ------- |:---...

网友评论

      本文标题:九、宕机恢复原理

      本文链接:https://www.haomeiwen.com/subject/aeggactx.html