`
smarthhl
  • 浏览: 28820 次
社区版块
存档分类
最新评论

Hbase split的过程以及解发条件

 
阅读更多

一、Split触发条件

1、 有任一一个Hfile的大小超过默认值10G时,都会进行split

2、 达到这个值不在拆分,默认为int_max,不进行拆分

3、compaction时,如果compact的store的大小超过了,则进行split

4、flush之前会检测区域中HStoreFile数目是否超过hbase.hstore.blockingStoreFiles,如果超过且没有等待超时会调用CompactSplitThread.requestSplit(HRegion)

5、flush之后会调用HRegion.checkSplit()检测是否需要split,如果需要则调用CompactSplitThread.requestSplit(HRegion)

6、人工触发

二、Split过程

1、启动一个CompactSplitThresd线程


2、SplitRequest.run


首先,实例化一个事务:在HDFS上的parent’s region 目录下创建一个.splits目录

其次,实例化两个RegionInfo: hri_a和 hri_b,赋予key的起始结束值,根据给定的splitkey


然后,执行execute方法:


(1)createDaughters



每个Reference文件管理原始文件一半的数据。Reference文件名字是一个ID,它使用被参考的Region的名字的Hash作为前缀。例如:1278437856009925445.3323223323Reference文件只含有非常少量的信息,这些信息包括被分割的原始RegionKey以及这个文件管理前半段还是后半段。HBase使用HalfHFileReader类来访问Reference文件并从原始数据文件中读取数据


Offline parent in meta. 向.META.表Put Split的信息



(2)openDaughter--DaughterOpener--DaughterOpener.run()--openDaughterRegion--openHRegion


openDaughter--postOpenDeployTasks


addToOnlineRegions // Should add it toOnlineRegions


(3)transitionZKNode :Finish off splittransaction, transition the zknode,更新Split的状态 (之后由Master来处理,CatalogJanitor 来清理多余文件夹)


分享到:
评论

相关推荐

    基于springboot集成hbase过程解析

    "基于SpringBoot集成HBase过程解析" SpringBoot集成HBase是当前大数据处理和存储解决方案中的一种常见组合。HBase是基于Hadoop的分布式、可扩展的NoSQL数据库,能够存储大量的结构化和非结构化数据。SpringBoot则...

    Hbase的安装过程及基本操作

    在本文中,我们将详细讲解Hbase的安装过程以及基本操作,特别针对在Linux环境下使用清华大学镜像进行下载的情况。Hbase是一个分布式的、面向列的数据库,常用于大数据存储,是Apache Hadoop生态系统的一部分。以下是...

    HbaseTemplate 操作hbase

    通过HbaseTemplate,我们可以执行常见的CRUD(创建、读取、更新和删除)操作以及更复杂的查询。 1. **HbaseTemplate的初始化**:在使用HbaseTemplate之前,我们需要在Spring配置文件中配置HBase的相关连接信息,如...

    C#通过thrift连接hbase过程

    【C#通过Thrift连接Hbase过程】 在分布式大数据存储领域,Apache Hbase是一个流行的NoSQL数据库,它基于Google的Bigtable设计,并运行在Apache Hadoop之上。为了在不同的编程语言环境中与Hbase进行交互,Thrift(一...

    HBASE基本概念以及使用场景

    根据个人的经验,总结出来的HBASE基本概念以及使用场景,原本用于内部分享

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

    这份“HBase官方文档中文版”详细阐述了HBase的核心概念、架构、操作以及最佳实践,对于HBase的学习者和使用者来说是一份宝贵的资源。通过深入学习,我们可以更好地理解和利用HBase处理海量数据的挑战。

    hbase读取数据过程

    HBASE的一个读取数据流程的解析,清晰的画出整个过程,十分有利于理解

    hbase数据可视化系统

    SpringBoot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如JDBC、MongoDB、JPA、RabbitMQ、Quartz等,只需少量配置就能创建一个独立的、生产级别的基于...

    HBase学习利器:HBase实战

    - **第7章:构建实际应用**:通过一系列具体的案例研究,展示如何使用HBase构建复杂的应用程序,涵盖了从需求分析到系统设计、实现再到测试和部署的全过程。 #### 三、HBase核心技术详解 **1. 数据存储模型**:...

    HBase源代码 hbase-0.98.23

    当一个Region的大小达到预设阈值时,`org.apache.hadoop.hbase.regionserver.HRegion`会触发分裂过程,这涉及到`org.apache.hadoop.hbase.regionserver.SplitTransaction`类的使用,确保分裂过程中数据的一致性。...

    hbase 资源合集 hbase 企业应用开发实战 权威指南 hbase 实战 hbase 应用架构

    《HBase资源合集》包含了四本重量级的书籍,分别是《HBase企业应用开发实战》、《HBase权威指南》、《HBase实战》以及《HBase应用架构》。这些书籍深入浅出地探讨了HBase在大数据环境中的应用与开发,是学习和掌握...

    hbase用于查询客户端工具

    HBase Shell提供了创建表、删除表、插入数据、查询数据等基本操作,同时也支持复杂的条件查询和扫描。通过Shell,你可以直接执行HBase的API调用,进行调试和测试。 2. **HBase REST Gateway**:REST...

    hbase介绍以及详细讲解

    HBase 是一个分布式的、基于列族的NoSQL数据库,它是Apache软件基金会的顶级项目,设计用于处理海量数据。HBase构建在Hadoop之上,旨在为非结构化或半结构化数据提供高吞吐量的随机读写能力,特别适合大规模大数据...

    hbase配置内置的zookeeper

    通常情况下,HBase 可以与独立的 ZooKeeper 服务进行集成,但为了简化部署过程,特别是对于小型测试环境或开发环境,我们可以选择配置 HBase 内置的 ZooKeeper。 #### 二、配置步骤详解 ##### 1. 准备阶段 首先...

    pinpoint的hbase初始化脚本hbase-create.hbase

    搭建pinpoint需要的hbase初始化脚本hbase-create.hbase

    hbase1.0.3_part2

    Part1可能已经涵盖了HBase的基础架构,包括Region Server、Master Server、Zookeeper的角色,以及HBase的数据模型——表、行键、列族、时间戳和版本。现在我们将继续深入,讨论更高级的主题。 1. **HBase的Region...

    hbase社区2018精选资料

    HBase社区2018精选资料的知识点涵盖了HBase生态系统的多个方面,包括HBase的基本概念、架构、组件、应用案例、技术实践、性能优化策略、新特性、平台实践以及社区动态等。HBase是一个高性能的开源NoSQL数据库,属于...

    HBase官方文档

    创建HBase的步骤涉及了搭建和部署HBase集群的基本流程,包括了需要的前期条件、配置细节以及如何添加数据。 综上所述,HBase的官方文档涵盖了从基础操作、集群配置到高级主题如性能优化和故障处理的广泛内容,这些...

Global site tag (gtag.js) - Google Analytics