您现在的位置是:首页 > 文章详情

HBase2.0 regionServer退出处理流程

日期:2020-04-14点击:443

rs主动退出或者宕机超过一定时间后,zk上/hbase/rs目录下对应的znode会被删除;

master的RegionServerTracker组件监听到该目录的子节点变化事件,会对zk上的rs节点和内存中的数进行对比,找出挂掉的ServerName;

ServerManager将该ServerName从onlineServers移到deadservers;

AssignmentManager创建ServerCrashProcedure实例(简称scp)并提交到ProcedureExecutor;

PE首先为scp设置procId,并持久化到hdfs,然后创建对应的RootProcedureState,用以回滚,最后提交到ProcedureScheduler中的相应队列中;

某个WorkerThread从队列中获取到该scp开始执行;

如果meta region在这个rs上,先split其log并assign,然后等待,直到被metaLoadEvent唤醒;

如果存在待处理的wal,则进行分布式split,这个任务由master中的SplitLogManager协调各rs中的SplitLogWorker完成;

split完成后,对该rs下的每个region,提交AssignProcedure(简称ap),然后scp挂起;

ap的执行分为3步:
由balancer分配目标rs;
通过RSProcedureDispatcher请求目标rs打开该region;
接收到已打开的消息后更新region的状态数据,包括内存和meta表(如果是meta region,则更新的是zk上的meta-region-server节点);

ap执行完成的时候,判断如果存在parent proc,则会将childrenLatch减1;

childrenLatch等于0的时候意味着所有ap都已经完成,此时会通过ap携带的parentProcId唤醒前面那个scp;

scp继续执行,清理AssignmentManager和ServerManager中关于该rs的相关数据后结束;

详细流程图:https://www.processon.com/view/link/5c49a5dae4b0fa03cea60e27

原文链接:https://yq.aliyun.com/articles/755401
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章