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.
相关推荐
【HBASERegion数量增多问题描述及解决方案】 在HBase分布式数据库中,Region是表数据的基本存储单元,它将表的数据按照ROWKEY的范围进行分割。随着数据的增长,一个Region会分裂成两个,以此来确保数据的均衡分布。...
HBase RowKey 设计与协处理器运用 HBase 是一个基于 HDFS 的分布式、面向列的 NoSQL 数据库,具有高性能、可靠性和扩展性等特点。本文将详细介绍 HBase 的 RowKey 设计和协处理器运用。 HBase 的介绍 HBase 是一...
2. **Region管理**:HBase将表划分为多个Region,每个Region包含一定范围的行键,这有助于数据的分布和并行处理。 3. **RegionServer与Master**:RegionServer负责读写操作,而Master负责Region的分配和负载均衡,...
基于MapReduce和HBase的海量网络数据处理 大数据时代,网络数据的处理和分析变得越来越重要。传统的网络数据处理模式已经无法满足大数据量的需求,需要寻求更高效的网络数据计算模式和数据存储模式。基于MapReduce...
1、region 拆分机制 ...当region大小大于某个阈值(hbase.hregion.max.filesize=10G)之后就会触发切分,一个region等分为2个region。 但是在生产线上这种切分策略却有相当大的弊端:切分策略对于大表和小表没有
hbase-region-inspector, HBase区域统计信息的可视化仪表板 hbase-region-inspectorHBase区域统计信息的可视化仪表板。 用法下载与HBase集群版本匹配的可执行二进制插件,添加execute权限,并使用以下命令行参数启动...
* `hbase.coprocessor.region.classes`:指定RegionServer 的授权控制器的类名。 * `hbase.coprocessor.regionserver.classes`:指定RegionServer 的授权控制器的类名。 例如,在 hbase-site.xml 文件中增加以下...
重启HMaster服务,HBase会自动分配工作负载到新节点。 2. 移除节点:在HBase的`regionservers`文件中移除节点的主机名,然后停止该节点上的HBase服务。HBase会自动重新平衡负载到其他节点。 在运行过程中,可能会...
在 HBase 中,Region 的初始分配策略是 Master 负责对 Region 的分配。HBase 采用了比较简单的算法来分配 Region: 1. 一种策略是“从哪里来到哪里去”,原先 Region 在那个 RS 上,现在依旧分配到那个 RS 上。 2. ...
2. Master节点:管理Region服务器,处理表和Region的分配,监控服务器健康状态,进行Region分裂和合并操作。 3. ZooKeeper:协调HBase集群,提供服务发现、元数据存储等关键功能。 4. 表和Region:表可以被分割成多...
但在分布式环境中,为了使新Region能够有效地分配到各个节点,通常建议重启HBase服务。 数据切割的过程涉及到HBase的内部机制,包括RegionServer、Zookeeper和HFile等组件的协同工作。切割时,HBase会创建新的...
在IT行业中,尤其是在大数据处理领域,HBase是一个广泛使用的分布式、高性能、列式存储的NoSQL数据库。HBase是建立在Hadoop文件系统(HDFS)之上,为处理大规模数据提供了一个高效的数据存储解决方案。而Spring Data...
HBase 和 Hadoop 数据块损坏处理 HBase 和 Hadoop 数据块损坏是非常常见的问题,可能会导致数据丢失、集群崩溃等严重后果。因此,了解如何处理 HBase 和 Hadoop 数据块损坏是非常重要的。本文将介绍 HBase 和 ...
HRegionServer是HBase集群运行在每个工作节点上的服务组件,负责维护Master分配给它的Region,处理对这些Region的读写请求,并在Region运行过程中进行切分。当Region变得过大时,HRegionServer会负责将它分割成两个...
在HBase中,Region自动切分是其可扩展性的重要机制,它确保了系统的水平扩展性和数据分布的均匀性。Region切分的关键在于如何高效、平衡地管理数据,避免单个Region过大导致性能下降,同时也要防止过度切分造成资源...
hbase-packet-inspector hbase-packet-inspector (HPI)是用于分析HBase RegionServers网络流量的命令行工具。 HPI读取tcpdump文件或捕获网络接口的实时数据包流,以提取有关客户端请求和响应的信息。 您可以对其...
本科毕业设计项目,基于spark streaming+flume+kafka+hbase的实时日志处理分析系统 基于spark streaming+flume+kafka+hbase的实时日志处理分析系统 本科毕业设计项目,基于spark streaming+flume+kafka+hbase的...
2. **Master Server**: 主节点负责整个集群的元数据管理,包括 RegionServer 的监控、Region 分配和负载均衡、RegionServer 故障恢复等。主节点并不参与数据处理,而是协调整个系统的运行。 3. **ZooKeeper**: ...
在HBase的分布式架构中,`org.apache.hadoop.hbase.client.HConnectionManager`负责管理客户端与HBase服务器之间的连接,而`org.apache.hadoop.hbase.regionserver.HRegionServer`是处理Region服务的主要组件,它...
- **自动分片**(Auto-Sharding):HBase通过自动将表分割成多个区域(Region),每个区域可以被分配到不同的节点上,从而实现水平扩展。 - **存储API**(Storage API):HBase提供了一套用于数据存储和访问的API...