hbase region分配,RS下线处理
来源:互联网 发布:网络摄像机拍照 编辑:程序博客网 时间:2024/05/22 02:12
RS下线的regionassign
上面在RS启动部分已经提到过,RS在zk中的地址注册为SESSION过期自动清理的路径(ephemeral)。
在master中通过RegionServerTracker对rs进行监控,
当rs在zk的session过期时间内没有向zk发送心跳。表示rs已经下线,会触发RegionServerTracker.nodeDeleted
publicvoidnodeDeleted(Stringpath){
if(path.startsWith(watcher.rsZNode)){
StringserverName= ZKUtil.getNodeName(path);
.........此处省去一些注释
ServerNamesn= ServerName.parseServerName(serverName);
如果此server本身在ServerManager的onlineServers列表中不存在.不做处理
if(!serverManager.isServerOnline(sn)){
.........此处省去一些注释
return;
}
从RegionServerTracker.onlineServers列表中移出此server
remove(sn);
通过Servermanager.expireServer对server执行下线操作。
首先从ServerManager.onlienServers列表中移出此server,同时把server添加到deadServers列表中。
检查是否是clustershutdown,如果是,不做rs的下线处理,否则执行下面流程。
检查server中是否包含metaregion,如果包含metaregion,通过MetaServerShutdownHandler处理下线操作
否则通过ServerShutdownHandler处理下线操作。
this.serverManager.expireServer(sn);
}
}
ServerShutdownHandleruser region的重新分配流程:
1.通过hbase.master.distributed.log.replay配置是否分布式日志重播,默认为false
2.通过hbase.master.log.replay.wait.region.timeout配置logreplay的等待超时时间,默认为15000ms
3.检查是否包含metaregion,此处不分析此部分代码。
4.得到metaregion的路径,并通过MetaReader从meta中得到下线的RS的所有regions列表。
5.执行日志的split处理,不分析。
if(this.shouldSplitHlog){
LOG.info("Splittinglogs for " + serverName+" before assignment.");
if(this.distributedLogReplay){
LOG.info("Markregions in recovery before assignment.");
Set<ServerName>serverNames=newHashSet<ServerName>();
serverNames.add(serverName);
this.services.getMasterFileSystem().prepareLogReplay(serverNames);
}else{
this.services.getMasterFileSystem().splitLog(serverName);
}
am.getRegionStates().logSplit(serverName);
6.通过AssignmentManager.assign(list)重新分配所有的region.
- hbase region分配,RS下线处理
- HBase源码分析之Region下线
- hbase的预分配region
- hbase的预分配region
- HBase Region的路由、分配与拆分
- Region 分配
- hadoop & hbase 上下线
- HBase 如何Debug region
- [HBase]Region assignment
- HBase Region分裂
- [HBase]Region location
- [HBase]Region assignment
- hbase region split策略
- HBase Region分裂
- HBase学习之region
- Hbase merge multiple region
- HBase Region split 策略
- hbase Region 的学习
- easyui dialog 标题栏 不显示
- LeetCode:Path Sum I &&II
- 03.ServletContext
- Ubuntu下Firefox的安装和Personal Package Archives
- 推荐个可以和《魔戒》争雄的美剧:《权力的游戏》。
- hbase region分配,RS下线处理
- 解决MYSQL访问时无法切换数据库的问题.Reading table information for completion of table and column names
- Java 判断操作系统类型(适用于各种操作系统)
- insmod时“invalid module format”及“unknown symbol”
- CentOS中文乱码问题的解决方法
- 多线程 gcd
- 马云控制恒生电子 意欲何为?
- SSD2828有 mipi 协议的读操作
- 真的是最后的最后了!