文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

hbase数据存储与查找原理

2018-09-01 12:44

关注

hbase数据存储与查找原理

Region

Region和kafka的partition(分区),Elasticsearch的shard(分片)差不多,是个物理概念。

一个表可以有多个Region,一个Region只属于一张表。

组件 逻辑存储 物理存储
Kafka topic partition
Elasticsearch index shard
HBase table region

store

store在HBase中对应的是列簇(Column Family,CF)

列簇在内存中的store是memstore,在磁盘中的是storefile,当内存中的memstore数据达到一定的阈值之后, 就会通过flashcache在磁盘上创建一个新的storefile,并且将memstore中的数据写入这个新创建的storefile。

当storefile文件的数量增长到一定阈值后会进行合并,在合并过程中会进行版本删除工作,从而形成更大的storefile。

当一个region所有storefile的大小和超过一定阈值后,会把当前的region分割为两个,并由master分配到相应的RegionServer服务器,实现负载均衡。

Region是HBase中分布式存储和负载均衡的最小单元,不同的Region可以分布在不同的Regionserver上。

RowKey

HBase定位一行数据的唯一标识,RowKey是按照字典顺序排序的,Rowkey最多只能存储64k的字节数据。

在设计RowKey的时候就应该注意,要让相同数据集的RowKey前缀尽量相同,这样才能分布到一起。

RowKey是写数据的时候才确定的,那个范围的RowKey放那个Region也是创建Region的时候确定

列族(Column Family,CF)

HBase每一行可以有多个列簇,在创建表的时候就必须指定列簇。

create "table_name", "cf1","cf2"

每一个列簇可以存放多个列(column),列是不用在创建表的时候指定的。

单元格(Cell)

由rowkey:cf:column确定,单元格是有版本的,其中的内容是未解析的字节数组(Byte[]),cell中的数据是没有类型的,全部是字节码形式存贮。

rowkey+cf+column+version才能唯一定位cell

更加底层的结构是HFile,KeyValue,有兴趣可以研究一下它们的结构

时间戳(Timestamp)

HBase每个cell存储单元对同一份数据有多个版本,根据唯一的时间 戳来区分每个版本之间的差异,不同版本的数据按照时间倒序排序,最新的数据版本排在最前面。

时间戳的类型是64位整型,HBase会把当前系统时间毫秒做为默认值,也可以由客户显式赋值,如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。

读数据

HBase读数据

写数据

HBase写数据

WAL(Write Ahead Log),为了崩溃恢复数据

scan

RegionScanner:扫描Region StoreScanner:扫描Store StoreFileScanner:扫描StoreFile与HFile KeyValueScanner:扫描MemStore

HBase扫描是比较慢的,特别是全表扫描,所以尽量避免,特别是在使用phoenix的时候,不要把HBase当做MySQL来用。

phoenix虽然是SQL,但是底层还是通过HBase的扫描过滤来实现的,非RowKey还是扫描的全部Region。

参考

hbase scan KeyValue

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯