`
punishzhou
  • 浏览: 141342 次
社区版块
存档分类
最新评论

HMaster的failover 流程(二)

阅读更多

继续上一篇的master failover流程


master挂掉期间没有regionserver挂掉的情况。

昨天写着写着突然发现90 failover存在一个bug,今天测试了一下,果然存在。


当master处理zk上面的unassigned节点时,首先会去getchlidren。这个函数会获取zk unassigned节点

 

set watch(该节点删除触发nodedeleted事件,有子节点创建删除会触发nodeChildrenchanged)然后会对

 

unassigned下所有节点getdata(watch)并set watch。如果这些节点有些值为M_ZK_REGION_OFFLINE,会将该

 

region的regionstate置为offline,并加入rit队列,然空内存并重新assign出去。

 

这样做的目的是由于当ZK上该region的节点时offline时认为此时该region尚未open,需要重新分配。

 

但是有一个问题是如果这个时候region open的rpc请求已经发送出去了,那么在那台rs上面会继续处理open region这

 

个事件这样可能造成几个现象:

 

1.当rs把region open以后,master开始assign,那么该region就有可能被重新分配两次。

 

2.rs open region以后master assign到同一台机器,那么该assign过程中止,但是master 内存中该region数据已经

 

清空导致该无法进行banlance等操作。

 

3.由于assign动作中止,RIT中存在该region的数据且并未清除,当超时时间到以后,会重新assign,但是由于rit中的数

 

据和zk上的数据不匹配导致该region的数据一致存在RIT中,而且不分配,无法balance

 

该问题复现概率比较小,主要是由于master启动failover该查到的region在zk上处于offline状态,而且此时rs还在处理该

 

region。即在rs更新zk的offline状态到opening之间,failover启动并且开始assign。若要重现可在rs处理的过程sleep

 

一段时间,然后重启master。(ms rs发生gc时该问题可能出现概率比较大)

分享到:
评论

相关推荐

    大数据运维技术第7章 HBase组件安装与配置课件.pptx

    HBase的体系结构是一个主从式的结构,主节点HMaster在整个集群当中只有一个在运行,从节点HRegionServer有很多个在运行,主节点HMaster与从节点HRegionServer实际上指的是不同的物理服务器,即有一个服务器上面跑的...

    分布式数据库HBase深入使用

    HMaster也需要连接ZooKeeper,链接的作用是:HMaster需要知道哪些HRegionServer是活动的及HRegionServer所在位置,然后管理HRegionServer。 HBase内部是把数据写到HDFS上的,DFS有客户端 Region中包含HLOG、Store。...

    分布式协调工具-ZooKeeper实现动态负载均衡

    在Hbase实现中,会在ZK上存储一些ROOT表的地址和HMaster的地址,HRegionServer也会把自己以临时节点(Ephemeral)的方式注册到Zookeeper中,使得HMaster可以随时感知到各个HRegionServer的存活状态,同时,一旦...

    HBase核心模块介绍及基本概念介绍(HBase模式设计)

    Client是整个HBase系统的入口客户端使用RPC协议与HMaster和RegionServer进行通信对于管理类(表的增删)操作,Client与HMaster进行RPC通信对于数据读写类操作Client与RegionServer进行RPC交互客户端可以是多个,也...

    CDH5.11安装文档

    172.30.5.243 namenode,zookeeper, HMaster,kafka,spark, elasticsearch master 内存:64GB 硬盘:7T 172.30.5.244 secorndaryNameNode,datanode,zookeeper,kafka, HRegionServer,spark, elasticsearch slave1 内容...

    深入理解HBase的系统架构

    HMaster,ZooKeeper。其中Regionserver负责数据的读写服务。用户通过沟通Regionserver来实现对数据的访问。HBaseHMaster负责Region的分配及数据库的创建和删除等操作。ZooKeeper作为HDFS的一部分,负责维护集群的...

    HBase的安装与配置

    Hbase的安装与配置 1、前提:要有装好的hdfs分布式文件系统和zookeeper集群 2、各台linux机器上传hbase安装包:hbase-0.98.12.1-hadoop2...13、为保证集群的可靠性,要启动多个HMaster hbase-daemon.sh start master

Global site tag (gtag.js) - Google Analytics