Hbase的Hfile存储
来源:互联网 发布:禾赛科技 知乎 编辑:程序博客网 时间:2024/05/01 05:13
HFile中的Key-Value结构
HFile中的每个Key-Value对就是一个简单的byte数组。但这个byte数组包含了很多项信息,并含有固定的结构。
开始是两个长度固定的数值,分别表示Key的长度和Value的长度。紧接着是Key,开始是固定长度的数值,表示RowKey的长度,紧接着是RowKey,然后是固定长度的数值,表示Family的长度,然后是Family,接着是Qualifier,然后是两个固定长度的数值,表示Time Stamp和Key Type(Put/Delete)。Value部分则相对简单,是纯粹的二进制数据。
-------------------------------HBASE是按列存储的,所以很多人都认为相同column family(列族) 或者qualifier(小列)的数据存储在一起。
这个理解是正确的吗?真相是:
如果内存中有不同的KeyValue,这些KeyValue的rowkey不同,CF(列族)不同,Qualifier(小列)不同。
当内存执行flush 的时候(操作方法: flush 'tablename'),
所有的相同列族存储在一起的,并按照如下的顺序排序:
1.rowkey
2.列族(实际上相同,此处可忽略)
3.小列
4.时间戳。
在文件层次上,不同的列族,存储在不同的文件中。但是不同的列族,可能会共享一个region。
/hbase/zz/3917ebd872c0adcb9d6c5a9cfd30b87f/a/9210131397650425238
/hbase/zz/3917ebd872c0adcb9d6c5a9cfd30b87f/b
/hbase/zz/3917ebd872c0adcb9d6c5a9cfd30b87f/b/7083844554431109536
如上所示:两个不同的列族,共享了同一个region(3917ebd872c0adcb9d6c5a9cfd30b87f)。
由于不同的列族会共享region,所以有可能出现,一个列族已经有1000万行,而另外一个才100行。当一个要求region分割的时候,会导致100行的列会同样分布到多个region中。所以,一般建议不要设置多个列族。 0 0
- Hbase的Hfile存储
- HBase之三【HBase基础】HFile存储格式
- 解决hbase 大的hfile 问题
- 深入理解HBase的memestore、storeFile(HFile)
- HBase I/O: HFile
- hfile到hbase
- hbase HFile V3介绍
- HBase之HFile解析
- HBase StoreFile(HFile)
- HBase之HFile解析
- HBase-mapreduce生成hfile
- HBase-Spark生成hfile
- HBase之HFile详解
- HBase的Hmaster、HRegionserver、Region、Hstore、memstore、HFile的关系
- Hbase中put和delete对hfile的操作
- hbase hfile中Key的类型对应于源码
- HFile存储格式
- HFile存储格式
- 图片的即时上传显示
- hdu2034 人见人爱A-B
- Akka学习笔记(四):监督和监控
- MySQL分区技术 (一)
- 订制微信 发送给好友 分享到朋友圈 分享到微博
- Hbase的Hfile存储
- 关于内存的分类
- 五大常用算法之四:回溯法
- stb页面显示性能优化
- android初学------身份证验证
- php实现数字签名
- Ubiquitous Religions(friends变形)
- Block块快速枚举
- Fitle App-网购达人的福音