HBase2.0 regionServer退出处理流程

简介:

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

目录
相关文章
|
4月前
|
分布式数据库 Hbase
HBase读取与写入流程
HBase读取与写入流程
32 0
|
9月前
|
存储 分布式计算 Hadoop
分布式数据库HBase的重要机制和原理的读/写流程
HBase是一个分布式数据库系统,基于Google的BigTable和Apache Hadoop的HDFS构建。它提供了一个高性能、可扩展的数据库平台,适用于大规模的数据存储和处理。在阿里云开发者社区中,很多开发者都会使用HBase进行数据存储和处理。本文将介绍HBase的读/写流程。
84 0
|
NoSQL 大数据 分布式数据库
【HBase】(6)-Compact合并StoreFile流程
【HBase】(6)-Compact合并StoreFile流程
194 0
【HBase】(6)-Compact合并StoreFile流程
|
存储 缓存 NoSQL
【HBase】(5)-HBase读数据流程
【HBase】(5)-HBase读数据流程
99 0
【HBase】(5)-HBase读数据流程
|
NoSQL 大数据 分布式数据库
【HBase】(4)-HBase写数据流程
【HBase】(4)-HBase写数据流程
112 0
【HBase】(4)-HBase写数据流程
|
缓存 分布式数据库 Hbase
【HBase】(六)详解 HBase 的读、写流程(面试重点)
【HBase】(六)详解 HBase 的读、写流程(面试重点)
147 0
【HBase】(六)详解 HBase 的读、写流程(面试重点)
|
分布式数据库 Hbase
hbase scan客户端服务端流程
hbase scan客户端服务端流程 一:基础知识了解: scanner可分为两种InternalScanner和KeyValueScanner,区别如下 1.
1387 0
|
Java Linux 分布式数据库
|
缓存 分布式数据库 Hbase
|
分布式计算 监控 Hadoop
Ganglia+Hadoop+Hbase监控搭建流程
Hadoop集群基本部署完成,接下来就需要有一个监控系统,能及时发现性能瓶颈,给故障排除提供有力依据。监控hadoop集群系统好用的比较少,自身感觉ambari比较好用,但不能监控已有的集群环境,挺悲催的。
1106 0