HBase Region原理总结归纳

本文详细总结了HBase Region的原理,包括环境准备、数据存储概述、Region划分及其在HDFS中的存储形式。重点介绍了Region的分配、Region Server的状态管理,以及Region的拆分、合并和寻址机制。通过对Rowkey的设计讨论,强调了其在查询效率和热点问题上的重要性。
摘要由CSDN通过智能技术生成

HBase Region原理总结

1. 环境准备

  1. 基于Hadoop 3.2.1
  2. 基于zookeeper 3.4.6
  3. 基于Hbase 2.2.5

资料来源:

  • 官网http://hbase.apache.org/2.2/book.html
  • 网络博客、视频等资料

2.HBase数据存储概述

2.1 hbase概述

  1. HBase是基于hdfs的一个数据库,也就是本身Hbase的数据存储在hdfs中。默认的,文件会分布式存储在hdfs节点中,并且按照128MB一块进行切分,并且会保存3份
  2. hdfs中数据不适合存储小文件,所以后续需要定期进行文件合并和清理来保证读写效率和性能。
  3. hdfs不支持随机读写,所以为了实现数据库中数据更新,hbase采取的文件追加形式来进行数据随机读写

2.2 rowkey概述

  1. hbase本质是以key value形式进行存储,如下图所示
    在这里插入图片描述
    key可以看成是row+columnfamily+qualifier+timestamp组合而成,value就是值
  2. 根据此前我另外一篇博客,为了提升查询效率,在memstore、block cache、hfile中的索引都是基于rowkey建立的。
  3. 这里可以看出,数据查询是基于rowkey进行的,所以rowkey的设计很重要。
  • 长度一定
  • 不要太长,太长会占用过多存储空间,甚至会导致key占用空间比value大不少的问题。(key后续会讲到,可以使用压缩算法进行压缩)
  • 需要考虑hbase表使用场景,也就是查询维度。最好rowkey和查询维度重叠。
  • 需要考虑热点问题,也就是插入热点和查询热点。
  1. rowkey数据可以看出,是按照一定规则进行排序展示的,timestamp是逆序,也就是数据最新数据在最前面。这个是和Version 版本机制有关。也就是存储在hbase中数据划分版本

2.3 region划分概述

  1. hbase的数据划分简图
    在这里插入图片描述
  • 可以看到,region其实就是一段区间范围内rowkey对应的数据,有startkey和endkey
  • 每一行rowkey对应数据,可能会有多个列族column family,一个列族中可能会有多个列名qualifier

2.4 hbase在hdfs中文件存储形式

  1. 在hdfs中,hbase文件存储形式
    访问hdfs开放出来的网页端:我的地址如下,http://linux100:9870/explorer.html#/hbase/data
  2. 查看hdfs中对应hbase表的信息
  • hbase目录
    在这里插入图片描述
  • data目录在这里插入图片描述
  • 对应namespace目录(hbase是一个数据库,但有别于关系型数据库,所以没有沿用database的改变,而是使用了namespace的概念)
    在这里插入图片描述
  • 数据库表目录,以及内部的region目录
    在这里插入图片描述
    这里直接在hbase shell客户端也可以查看到region的名字
    在这里插入图片描述
  • region目录下的列族目录
    在这里插入图片描述
  • 列族目录下的hfile文件
    在这里插入图片描述

2.5 hfile查看

  1. 直接使用hdfs dfs -cat查看,不过由于hfile有指定格式,看起来是乱码
hdfs dfs -cat /hbase/data/doit/tb_computer_info/58b3bed2479674cb2874f07c5a7d6a2d/cf1/f8fe336766104cd3a5b63c49f976785c_SeqId_4_

在这里插入图片描述
2.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值