`
uestzengting
  • 浏览: 96427 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hbase region split源代码阅读笔记

阅读更多
客户端
1. HbaseAdmin.split(final byte [] tableNameOrRegionName,
      final byte [] splitPoint)

这个方法首先判断参数是regionName还是tableName;如果是regionName则只分裂该region,如果是tableName则分裂该表下的所有region

if (isRegionName(tableNameOrRegionName)) {//如果是regionName
        // Its a possible region name.
        Pair<HRegionInfo, HServerAddress> pair =
          MetaReader.getRegion(ct, tableNameOrRegionName);//读出regionInfo和RegionServerAddress
        if (pair == null || pair.getSecond() == null) {
          LOG.info("No server in .META. for " +
            Bytes.toStringBinary(tableNameOrRegionName) + "; pair=" + pair);
        } else {
          split(pair.getSecond(), pair.getFirst(), splitPoint);//调用方法分裂该region
        }
      } else {{//如果是tableName
        List<Pair<HRegionInfo, HServerAddress>> pairs =
          MetaReader.getTableRegionsAndLocations(ct,
              Bytes.toString(tableNameOrRegionName));//读出table下的一批region
        for (Pair<HRegionInfo, HServerAddress> pair: pairs) {
          // May not be a server for a particular row
          if (pair.getSecond() == null) continue;
          HRegionInfo r = pair.getFirst();
          // check for parents
          if (r.isSplitParent()) continue;
          if (splitPoint != null) {
            // if a split point given, only split that particular region
            if (!r.containsRow(splitPoint)) continue;
          }
          split(pair.getSecond(), pair.getFirst(), splitPoint);调用方法分裂这批region

        }

2. HbaseAdmin.split(final HServerAddress hsa, final HRegionInfo hri,
      byte[] splitPoint)

这只是个代理方法,调起regionserver的远程接口
    HRegionInterface rs = this.connection.getHRegionConnection(hsa);
    rs.splitRegion(hri, splitPoint);

RegionServer服务端
3.HRegionServer.splitRegion(HRegionInfo regionInfo, byte[] splitPoint)

    checkOpen();//检查regionserver是否停止
    HRegion region = getRegion(regionInfo.getRegionName());//拿到在线region
    region.flushcache();//写memstore到hfile
    region.forceSplit(splitPoint);//设置了两个值this.splitRequest=true    和 splitPoint = sp
    // force a compaction, split will be side-effect
    // TODO: flush/compact/split refactor will make it trivial to do this
    // sync/async (and won't require us to do a compaction to split!)
    compactSplitThread.requestCompaction(region, "User-triggered split",
        CompactSplitThread.PRIORITY_USER);//异步发起一个region的compact操作
0
1
分享到:
评论

相关推荐

    hbase权威指南源代码下载

    在本文中,我们将围绕HBase的核心概念、架构以及如何通过源代码学习进行深入探讨。 HBase,作为Apache Hadoop生态系统的一部分,是一个基于列族的分布式数据库,特别适合处理海量结构化数据。它的设计目标是在廉价...

    hbase0.94java源代码

    这个源代码包是针对Java开发者的宝贵资源,可以帮助他们深入理解HBase的内部工作原理,优化自己的应用,以及对HBase进行定制化开发。 HBase的核心概念包括: 1. 表(Table):HBase的数据存储在表中,每个表由行键...

    VC代码 hbase1.0 (实用代码源).rar

    VC代码 hbase1.0 (实用代码源).rarVC代码 hbase1.0 (实用代码源).rarVC代码 hbase1.0 (实用代码源).rarVC代码 hbase1.0 (实用代码源).rarVC代码 hbase1.0 (实用代码源).rarVC代码 hbase1.0 (实用代码源).rarVC代码 ...

    hbase权威指南源代码

    通过阅读《HBase权威指南》并结合源代码,开发者能够更好地掌握HBase的核心概念和技术,从而在实际项目中有效地运用HBase解决大数据问题。这些源代码实例对于学习HBase的开发、调试和运维都具有很高的参考价值。

    hbase权威指南.源代码

    《HBase权威指南》是一本深入探讨分布式大数据存储系统HBase的专业书籍,其源代码的提供为读者提供了更直观的学习材料。HBase是基于Apache Hadoop的非关系型数据库(NoSQL),它在大规模数据存储方面表现卓越,尤其...

    HBASERegion数量增多问题描述及解决方案.docx

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

    hbase权威指南 源代码 英文

    通过阅读《HBase 权威指南》的源代码,开发者不仅可以理解HBase的设计理念,还能学习到如何利用HBase解决实际问题,提升大数据处理的能力。无论是初学者还是经验丰富的开发者,这本书都将是提升HBase技能的宝贵资源...

    Hbase权威指南 随书源代码 源码包 绝对完整版

    Hbase权威指南 随书源代码 源码包 绝对完整版 maven工程,带pom文件,可以直接作为一个完整工程导入eclipse等ide。

    HBase源代码 hbase-0.98.23

    《深入剖析HBase源代码:hbase-0.98.23》 HBase,作为Apache的一个开源项目,是构建在Hadoop之上的分布式、版本化、列族式的NoSQL数据库,它提供了高可靠性、高性能、可伸缩的数据存储解决方案。本文将基于hbase-...

    hbase操作必备客户端源代码

    hbase操作必备客户端源代码

    hbase权威指南 配套源码

    《HBase权威指南》是一本深入探讨分布式列式数据库HBase的专业书籍,其配套源码提供了书中所提及的示例代码和实践案例,方便读者更好地理解和应用HBase。以下将详细解析HBase的相关知识点。 HBase是建立在Apache ...

    HBase基本操作 Java代码

    HBase基本操作 增删改查 java代码 要使用须导入对应的jar包

    将hdfs上的文件导入hbase的源代码

    通过阅读和理解这段代码,可以深入学习如何在实际项目中将HDFS数据导入HBase,这对于大数据平台的开发和运维人员来说是非常有价值的实践。 总的来说,将HDFS上的文件导入HBase是一个涉及数据处理、数据库设计和编程...

    hbase权威指南源码

    解压后的`hbase-book-master`包含项目的基本目录结构,如`src/main/java`用于存放Java源代码,`src/main/resources`存储资源配置文件,`pom.xml`是Maven项目对象模型,定义了项目的构建过程和依赖关系。 2. **...

    Hbase的region合并与拆分

    HBase的region split策略一共有以下几种: 1、ConstantSizeRegionSplitPolicy 0.94版本前默认切分策略 当region大小大于某个阈值(hbase.hregion.max.filesize=10G)之后就会触发切分,一个region等分为2个region。 ...

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

    6. **用户配置**:用户可以在表级别或列族级别自定义切分策略,通过`hbase.table.region.split.policy`和`hbase.default.region.replication.policy`进行配置。 理解这些细节有助于更好地管理HBase集群,确保数据...

    Hbase 分区操作

    当我们谈论"Hbase分区merge和split操作"时,我们指的是管理员或开发人员对Region进行的手动调整,以优化集群性能。 **1. HBase Region Split** Region split是将一个大型Region拆分为两个较小的Region的过程,通常...

    java操作Hbase之Hbase专用过滤器PageFilter的使用源代码

    在Java中操作HBase数据库时,我们经常需要对大量数据进行高效的检索和处理。...提供的源代码应该包含如何创建、应用PageFilter以及处理扫描结果的完整示例,这对于学习和实践HBase的分页查询非常有帮助。

    读书笔记:hbase权威指南学习代码.zip

    读书笔记:hbase权威指南学习代码

Global site tag (gtag.js) - Google Analytics