`
hongs_yang
  • 浏览: 61011 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

hbase region分配,RS下线处理

阅读更多

RS下线的regionassign

上面在RS启动部分已经提到过,RSzk中的地址注册为SESSION过期自动清理的路径(ephemeral)

master中通过RegionServerTrackerrs进行监控,

rszksession过期时间内没有向zk发送心跳。表示rs已经下线,会触发RegionServerTracker.nodeDeleted

publicvoidnodeDeleted(Stringpath){

if(path.startsWith(watcher.rsZNode)){

StringserverName= ZKUtil.getNodeName(path);

.........此处省去一些注释

ServerNamesn= ServerName.parseServerName(serverName);

如果此server本身在ServerManageronlineServers列表中不存在.不做处理

if(!serverManager.isServerOnline(sn)){

.........此处省去一些注释

return;

}

RegionServerTracker.onlineServers列表中移出此server

remove(sn);

通过Servermanager.expireServerserver执行下线操作。

首先从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的路径,并通过MetaReadermeta中得到下线的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数量增多问题描述及解决方案.docx

    【HBASERegion数量增多问题描述及解决方案】 在HBase分布式数据库中,Region是表数据的基本存储单元,它将表的数据按照ROWKEY的范围进行分割。随着数据的增长,一个Region会分裂成两个,以此来确保数据的均衡分布。...

    hbase的rowkey设计与hbase的协处理器运用.docx

    HBase RowKey 设计与协处理器运用 HBase 是一个基于 HDFS 的分布式、面向列的 NoSQL 数据库,具有高性能、可靠性和扩展性等特点。本文将详细介绍 HBase 的 RowKey 设计和协处理器运用。 HBase 的介绍 HBase 是一...

    HBase入门与使用

    2. **Region管理**:HBase将表划分为多个Region,每个Region包含一定范围的行键,这有助于数据的分布和并行处理。 3. **RegionServer与Master**:RegionServer负责读写操作,而Master负责Region的分配和负载均衡,...

    基于MapReduce和HBase的海量网络数据处理.pdf

    基于MapReduce和HBase的海量网络数据处理 大数据时代,网络数据的处理和分析变得越来越重要。传统的网络数据处理模式已经无法满足大数据量的需求,需要寻求更高效的网络数据计算模式和数据存储模式。基于MapReduce...

    Hbase的region合并与拆分

    1、region 拆分机制 ...当region大小大于某个阈值(hbase.hregion.max.filesize=10G)之后就会触发切分,一个region等分为2个region。 但是在生产线上这种切分策略却有相当大的弊端:切分策略对于大表和小表没有

    hbase-region-inspector, HBase区域统计信息的可视化仪表板.zip

    hbase-region-inspector, HBase区域统计信息的可视化仪表板 hbase-region-inspectorHBase区域统计信息的可视化仪表板。 用法下载与HBase集群版本匹配的可执行二进制插件,添加execute权限,并使用以下命令行参数启动...

    hbase 权限配置.docx

    * `hbase.coprocessor.region.classes`:指定RegionServer 的授权控制器的类名。 * `hbase.coprocessor.regionserver.classes`:指定RegionServer 的授权控制器的类名。 例如,在 hbase-site.xml 文件中增加以下...

    hbase安装,节点添加,移除,常见问题解决

    重启HMaster服务,HBase会自动分配工作负载到新节点。 2. 移除节点:在HBase的`regionservers`文件中移除节点的主机名,然后停止该节点上的HBase服务。HBase会自动重新平衡负载到其他节点。 在运行过程中,可能会...

    hbase负载均衡算法分析

    在 HBase 中,Region 的初始分配策略是 Master 负责对 Region 的分配。HBase 采用了比较简单的算法来分配 Region: 1. 一种策略是“从哪里来到哪里去”,原先 Region 在那个 RS 上,现在依旧分配到那个 RS 上。 2. ...

    HBase官方文档中文版-HBase手册中文版

    2. Master节点:管理Region服务器,处理表和Region的分配,监控服务器健康状态,进行Region分裂和合并操作。 3. ZooKeeper:协调HBase集群,提供服务发现、元数据存储等关键功能。 4. 表和Region:表可以被分割成多...

    hbase regions数据切割.docx

    但在分布式环境中,为了使新Region能够有效地分配到各个节点,通常建议重启HBase服务。 数据切割的过程涉及到HBase的内部机制,包括RegionServer、Zookeeper和HFile等组件的协同工作。切割时,HBase会创建新的...

    HbaseTemplate 操作hbase

    在IT行业中,尤其是在大数据处理领域,HBase是一个广泛使用的分布式、高性能、列式存储的NoSQL数据库。HBase是建立在Hadoop文件系统(HDFS)之上,为处理大规模数据提供了一个高效的数据存储解决方案。而Spring Data...

    hbase和hadoop数据块损坏处理

    HBase 和 Hadoop 数据块损坏处理 HBase 和 Hadoop 数据块损坏是非常常见的问题,可能会导致数据丢失、集群崩溃等严重后果。因此,了解如何处理 HBase 和 Hadoop 数据块损坏是非常重要的。本文将介绍 HBase 和 ...

    Hbase 组件 、架构

    HRegionServer是HBase集群运行在每个工作节点上的服务组件,负责维护Master分配给它的Region,处理对这些Region的读写请求,并在Region运行过程中进行切分。当Region变得过大时,HRegionServer会负责将它分割成两个...

    HBaseRegion自动切分的所有细节都在这里了

    在HBase中,Region自动切分是其可扩展性的重要机制,它确保了系统的水平扩展性和数据分布的均匀性。Region切分的关键在于如何高效、平衡地管理数据,避免单个Region过大导致性能下降,同时也要防止过度切分造成资源...

    hbase-packet-inspector:分析HBase RegionServers的网络流量

    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的实时日志处理分析系统 本科毕业设计项目,基于spark streaming+flume+kafka+hbase的...

    Hbase

    2. **Master Server**: 主节点负责整个集群的元数据管理,包括 RegionServer 的监控、Region 分配和负载均衡、RegionServer 故障恢复等。主节点并不参与数据处理,而是协调整个系统的运行。 3. **ZooKeeper**: ...

    HBase源代码 hbase-0.98.23

    在HBase的分布式架构中,`org.apache.hadoop.hbase.client.HConnectionManager`负责管理客户端与HBase服务器之间的连接,而`org.apache.hadoop.hbase.regionserver.HRegionServer`是处理Region服务的主要组件,它...

    Hbase权威指南(HBase: The Definitive Guide)

    - **自动分片**(Auto-Sharding):HBase通过自动将表分割成多个区域(Region),每个区域可以被分配到不同的节点上,从而实现水平扩展。 - **存储API**(Storage API):HBase提供了一套用于数据存储和访问的API...

Global site tag (gtag.js) - Google Analytics