`

HBase Region Split过程详解

阅读更多

 1、检查是否需要进行Region Split的时机:

每次flush或者compact之后,regionserver都会去检查是否满足了Split的条件。

2、Region Split的过程如下:

 

(1)RegionServer在Zookeeper上创建一个/hbase/region-in-transition/region-name结点,并设置结点的内容为SPLITTING 

(2)由于Master监听/hbase/region-in-transition,所以(1)发生时,Master会收到相应的通知。

(3)RegionServer在HDFS上的parent’s region 目录下创建一个.splits目录

(4)RegionServer关闭ParentRegion,同时强制执行flush操作,并在RegionServer的本地数据结构中将该Region标记为offline状态。此时当客户端再请求该ParentRegion时,会抛出NotServingRegionException的异常,客户端会不断的进行尝试。

(5)RegionServer在.splits目录下创建daughter regions A and B两个子目录,并创建对应的数据结构。然后,RegionServer开始对ParentRegion中所有StoreFile执行Split的操作。此阶段RegionServer只会为ParentRegion中的每一个StoreFile创建两个索引文件。

(6)RegionServer在HDFS上分别为daughterA Region和daughterB Region创建实际的存储目录

(7)RegionServer向.META.表发送一个Put请求。此请求首先将.META.表中的ParentRegion标记为offline,然后将daughterA Region和daughterB Region的信息添加到.META.表中。但是此时在.META.表并不存在代表daughterA和daughterB的单独实体。此时查询.META.表,我们将看到ParentRegion正在进行Split,但是看不到daughter的信息。如果RegionServer 执行Put操作执行成功,那么ParentRegion将会被成功的Split。如果RegionServer执行Put操作失败,Master和下一个打开ParentRegion的RegionServer会将关于ParentRegion的Split操作的脏数据删除掉。

(8)RegionServer打开daughterA Region和daughterB Region,然后daughter Region开始接受写请求。

(9)RegionServer将daughterA 和daughterB 的信息添加到.META.表中。之后,客户端才能够发现daughterA 和daughterB region,并向daughter Region发送请求。

(10)RegionServer 将zookeeper上的/hbase/region-in-transition/region-name结点的状态更新为SPLIT,此时Master会收到状态更新的通知,然后Balanceer可以将daughter Region指定到其他的RegionServer上。

(11) Split过程结束之后,HDFS和META中还会保留着指向parent region的索引文件的信息。这些索引文件会在daughter Region执行Major Compact来对StoreFile进行重写时删除掉。Master中的Garbage collection任务会周期性的检查daughter regions中是否还包含指向parents Region的索引文件,如果不包含,Master会将parents Region删除掉。

  • 大小: 77.9 KB
分享到:
评论

相关推荐

    HBase应用最佳实践详解.pdf

    * Region拆分和合并:预建分区可以避免自动split,提高HBase的响应速度 * Region均衡:避免出现Region热点现象,按照table级别进行balance * 尽量只用1-2个列族:减少列族的数量可以提高HBase的性能 * 定期建表:...

    HBase应用最佳实践详解.pptx

    《HBase应用最佳实践详解》 HBase,作为Apache Hadoop生态系统中的分布式列式数据库,以其高并发、大数据量处理能力而备受青睐。本实践详解将深入探讨HBase的安装、常用命令、优化策略以及典型应用场景,以帮助读者...

    hbase的Rowkey设计方案.pdf

    《HBase的Rowkey设计详解》 HBase作为一种高性能的分布式NoSQL数据库,因其在OLAP实时分析中的卓越性能而受到广泛关注。其核心特性之一便是通过Rowkey进行数据查询,因此Rowkey的设计对于HBase的读写性能至关重要。...

    hbase数据可视化系统

    使用HBase的Compaction和Split机制,保持Region的平衡;并考虑使用二级索引提高查询效率。 六、总结 通过SpringBoot搭建的HBase可视化系统,使得非技术人员也能便捷地管理和操作HBase,降低了使用门槛,提高了工作...

    hbase-2.0.1-bin.tar

    通过Region Split策略调整数据分布,避免热点问题;还可以通过监控工具查看HBase的运行状态,及时发现和解决问题。 总的来说,HBase 2.0.1在CentOS 6.5上的单机安装涉及了系统环境配置、软件下载、配置文件定制等多...

    一张图看懂HBase

    ### HBase核心概念与架构详解 #### HBase简介 HBase是一个开源的、面向列的分布式数据库系统,基于Google的Bigtable论文设计实现,并且是Hadoop生态系统中的关键组件之一。它提供了高可靠性、高性能、可伸缩性及...

    hbase-2.0.0.3.0.0.0-1634-bin.tar.gz

    2. Region管理:HBase的Region是数据分区的基本单位,你可以通过Ambari监控Region分布,进行手动Split或Merge操作。 3. 性能调优:通过调整HBase的配置参数,如MemStore大小、BlockCache设置等,可以优化读写性能。...

    Apache Hbase面试题

    6. **大合并**:当单个Region的StoreFile总大小超过预设阈值时(默认10GB),会触发Region Split操作,将当前Region分成两个子Region,以实现负载均衡。 #### 三、HBase读数据流程详解 1. **获取RegionServer信息*...

    HBASE编程指南word版

    #### 三、HBase架构详解 - **Region概念**: HBase的基本存储单元是Region,每个Region包含一个或多个列族的数据。Region可以跨服务器分布,以达到负载均衡的目的。 - **Store概念**: Store是Region内部的存储单位,...

    Hbase中文文档和官方英文文档PDF.7z

    5. **数据分布与分区**:解释HBase如何通过Region进行数据分区,以及Split过程。 6. **容错与高可用性**:讨论HBase的故障恢复策略,如RegionServer的故障切换。 7. **性能调优**:分享关于配置优化、读写性能提升、...

    Hbase二级索引与JOIN

    可以通过调整RegionServer配置、优化RegionSplit策略等方式来缓解。 - **RegionServer OOM**:当行的版本过多或者RowKey设计不合理时,可能导致RegionServer内存溢出。可以通过减少版本数量、优化RowKey设计等方法...

    hbase性能调优

    ### HBase性能调优策略详解 #### 一、服务端参数配置优化 针对HBase的服务端性能调优,可以通过合理调整一系列关键参数来提升系统的稳定性和效率。下面将详细介绍几个核心参数及其调优方法。 ##### 1. `hbase....

    Hbase列式数据库实战

    《HBase列式数据库实战详解》 HBase,作为NoSQL数据库家族中的重要成员,尤其在大数据领域扮演着不可或缺的角色。它是一个分布式的、面向列的数据库,特别适合处理大规模数据。本篇将深入探讨HBase的核心操作,包括...

    Hbase性能测试详细设计文档及用例.pdf

    《HBase性能测试详解》 HBase,作为一款分布式、基于列族的NoSQL数据库,其性能优化至关重要。本文将深入探讨HBase的性能测试及其关键调优参数,旨在提升系统的稳定性和处理能力。 首先,表的设计是影响性能的关键...

    10大HBase常见运维工具整理小结

    6. ** hbadmin**:HBase的命令行工具,提供了诸如关闭、启动regionserver,进行Region Split和Merge等操作。它是HBase运维中的基础工具,实用性极高。 7. **HBase Shell**:HBase的交互式命令行接口,允许用户执行...

    HBase源码分析

    ### HBase源码分析——关键知识点详解 #### 一、HBase性能测试总结与环境配置 **测试环境:** - **硬件配置:** - 1台客户端机器 - 5台RegionServer服务器 - 1台Master服务器 - 3台Zookeeper服务器 - **软件...

Global site tag (gtag.js) - Google Analytics