• 说说HBase Region核心切分流程?


    分析&回答


    HBase将整个切分过程包装成了一个事务,意图能够保证切分事务的原子性。整个分裂事务过程分为三个阶段:prepare – execute – (rollback)

    整个region切分是一个比较复杂的过程,涉及到父region中HFile文件的切分、两个子region的生成、系统meta元数据的更改等很多子步骤,因此必须保证整个切分过程的事务性,即要么切分完全成功,要么切分完全未开始,在任何情况下也不能出现切分只完成一半的情况。

    Region

    Region相当于一个数据的分片。每一个Region都有起始rowkey和结束rowkey,这表示了Region存储的row范围。

    一个RegionServer包含多个Region,一个表的一段键值在一个RegionServer上会产生一个Region。在一个RegionServer中有一个或多个Region。

    RowKey在Region中的作用:在HBase 中,Region 相当于一个数据的分片,每个 Region 都有StartRowKey和StopRowKey,这是表示 Region 存储的 RowKey 的范围,HBase 表的数据是按照 RowKey 来分散到不同的 Region,要想将数据记录均衡的分散到不同的Region中去,因此需要 RowKey 满足这种散列的特点。

    此外,在数据读写过程中也是与RowKey 密切相关,RowKey在读写过程中的作用:读写数据时通过 RowKey 找到对应的 Region;MemStore 中的数据是按照 RowKey 的字典序排序;HFile 中的数据是按照 RowKey 的字典序排序。

    hbase中数据rowkey在region中表现形式如下图:

    image.png


    为了大家更加方便的刷题,我们对文章进行了分类和整理,免费为大家提供刷题服务。程序员不欺骗程序员,赶紧扫码小程序刷起来!
    请添加图片描述

    为了一站式解决面者刷题问题,部分内容可能存在摘录情况,如有侵权辛苦您留言联系我们,我们会删除文章或添加引用文案,Thanks!

  • 相关阅读:
    Vue2基础
    基于QT的超市信息管理系统
    Jolokia 笔记 (Kafka/start/stop)
    安全进阶:SSH实验配置指导
    【数仓精品理论分析】能不能学大数据?
    Vue3创建项目(一)新手教程
    【C++漂流记】简易理解引用的基本语法和使用及其注意实现
    短链接(ShortLink)系统遇到链接长度太短问题
    Java(SpringBoot04)
    element-ui el-table 滚动到底部,进行加载下一页
  • 原文地址:https://blog.csdn.net/jjclove/article/details/124923117