HBase总结

本文详细介绍了HBase的数据模型,包括row key、column family、timestamp和cell单元格等概念,强调了row key设计的重要性。同时,文章还剖析了HBase的架构,包括client、zookeeper、master、region server和region的角色,以及写入和读取流程。最后讨论了HBase的优化策略,如解决热点问题、表设计和参数调整,旨在提升系统性能。
摘要由CSDN通过智能技术生成

一、数据模型

1.数据模型例子
在这里插入图片描述

2.数据模型解析

1)存储(keyvalue)

HBase什么样的数据都能储存,数据的话在HBase当中都是以字节数组的形

式储存的;HBase中数据的存储是以key-value格式来存储的,key是rowkey+时

间戳+列簇,valuValue部分没有那么复杂的结构,就是纯粹的二进制数据

引用原文:https://blog.csdn.net/ping_hu/article/details/77115998

和https://blog.csdn.net/weixin_33750452/article/details/90308038

2)Row Key

<1> rowkey介绍

如果你想对HBase的表进行防问的时候必须通过row key,那么row key是什

么呢:Row Key代表了一行数据;它可以是任意的字符,但是最大只有64k;并

且按照字典排序的;

注:我们可以利用字典排序这个点,将经常使用的数据放在一块,最近要访

问的放在一块,来进行小小的优化一下

<2> rowkey设计

row key设计的时候需要注意的是,row key 的设计规则,规则有这么几个

定长
为什么定长呢?那是以为内在HBase当中,row的排序是按照字典排序
的,如果不定长的话,排序就有可能会打乱。
越短越好
为什么定长呢?那是以为内在HBase当中,每条数据都会呆着rowkey,
所以说rowkey越长,所消耗掉额空间就越多,适当的减少rowkey的长度可以提
高存储空间的利用
唯一

按照实际的业务来

3)CF(Clumu Family)

· 列簇的话,它是shcema的一部分,所以它必须预先给出;

· 在HBase表中,列名以列簇为前缀,一个列簇可以有很多个成员(列);

· 成员的话可以按照业务的需求随时追加(动态加入);

· HBase存储把同一个列簇下的数据放在同一个目录下,就是说是以列簇

为目录存储的,目录下的文件存储该列簇的数据;

· 需要注意的是列簇一般最多只能有三个,一般只用一个就行,这是因为

当一个列簇flush的时候,因为关联效应其他的列簇同样也会flush,最

终导致系统产生更多的IO。

4)TimeTamp

时间戳是有系统生成的,精确到毫秒的64位整数,而且它本身就代表了

唯一性;在HBase当中每个cell存储单元对同一份数据有多个版本,而版本
是根据时间戳来区分的࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值