HBase-存储-KeyValue格式
HBase-存储-KeyValue格式
本质上,HFile中的每个KeyValue都是一个低级的字节数组,它允许零复制访问数据。
KeyValue格式如下

该结构以两个分别表示键长度(Key Length)和值长度(Value Length)的定长数字开始。有了这个信息,用户就可以在数据中跳跃,例如,可以忽略键直接访问值。其它情况下,用户也可以从键中获取必要的信息。一旦其被转换成一个KeyValue的Java实例,用户就能通过对应的getter方法得到更多的细节信息。
上图中,平均键比平均值大的原因可以归结为键中包含的数据项:它包含了指定单元的全维度内容。键包含了行键、列族名和列限定符等。相对于一个较小的有效负载,这将导致相当巨大的开销。如果用户处理的值较小,那么应当保持键尽量小。选择一个短的行和列键(列族名是一个单字节,同时列限定符也一样短)来保证键值比率合适。
另一方面,压缩有助于缓解这一问题,因为它着眼于有限的数据窗口,并且其中所有重复的数据都能够被有效地压缩。存储文件中所有的KeyValue都被有序地存储,这样有助于把类似的键放在一起。
HBase-存储-KeyValue格式的更多相关文章
- HBase存储架构
以下的介绍是基于Apache Hbase 0.94版本: 从HBase的架构图上可以看出,HBase中的存储包括HMaster.HRegionServer.HRegion.Store.MemStore ...
- Hbase存储详解
转自:http://my.oschina.net/mkh/blog/349866 Hbase存储详解 started by chad walters and jim 2006.11 G release ...
- HBase修改压缩格式及Snappy压缩实测分享
一.要点 有关Snappy的相关介绍可参看Hadoop压缩-SNAPPY算法,如果想安装Snappy,可以参看Hadoop HBase 配置 安装 Snappy 终极教程. 1. HBase修改Tab ...
- 用Hbase存储Log4j日志数据:HbaseAppender
业务需求: 需求很简单,就是把多个系统的日志数据统一存储到Hbase数据库中,方便统一查看和监控. 解决思路: 写针对Hbase存储的Log4j Appender,有一个简单的日志储存策略,把Log4 ...
- HBase存储剖析与数据迁移
1.概述 HBase的存储结构和关系型数据库不一样,HBase面向半结构化数据进行存储.所以,对于结构化的SQL语言查询,HBase自身并没有接口支持.在大数据应用中,虽然也有SQL查询引擎可以查询H ...
- hbase 存储结构和原理
HBase的表结构 建表时要指定的是:表名.列族 建表语句 create 'user_info', 'base_info', 'ext_info' 意思是新建一个表,名称是user_info,包含两个 ...
- hbase.client.keyvalue.maxsize的默认值
hbase的列族的最大值是在hbase配置里的hbase.client.keyvalue.maxsize,默认大小为10M,即 10485760 . http://eclecl1314-163-com ...
- laravel 存储base64格式图片
laravel 存储base64格式图片 一.总结 一句话总结: 用正则替换base64图片编码的编码头即可 存储图片的话,用laravel可以用Storage的put方法,原生php可以用file_ ...
- HBase存储及读写原理介绍
一.HBase介绍及其特点 HBase是一个开源的非关系型分布式数据库,它参考了谷歌的BigTable建模,实现的编程语言为Java.它是Apache软件基金会的Hadoop项目的一部分,运行于HDF ...
随机推荐
- 转:: 刺鸟:用python来开发webgame服务端(5)
来源:http://ciniao.me/article.php?id=19 --------------- 刺鸟原创文章,转载请注明出处 在前面的文章中,我们已经开始了不少逻辑功能的开发,在这期 ...
- (四)DIH导入结构化数据
(四)DIH导入结构化数据 目前大多数的应用程序将数据存储在关系数据库(如oracle.sql server .mysql等).xml文件中.对这样的数据进行搜索是很常见的应用.所谓的DataImpo ...
- 【转】再谈CLR查找和加载程序集的方式
这是一个老问题,以前也有朋友写过一些文章介绍,但可能还不是很全面.我也多次被人问到,这里结合案例再次谈谈,希望对大家有所帮助. 本文范例代码可以通过这里下载 http://files.cnblogs. ...
- ehcache 的HelloWorld实现(二)
EhCache最新版本是3.X 本人一直用的是2.X 比较稳定 功能足够用: 所以还是用2.X版本: 我们新建一个Maven项目, pom.xml里引入 ehcache支持: <dependen ...
- js验证表单大全1
附加:js验证radio是否选择 <script language="javascript"> function checkform(obj) { for(i=0;i& ...
- python下多线程的限制以及多进程中传递参数的方式
python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是 ...
- python模块学习(三)
logging模块 简单应用 import logging logging.debug('debug message') logging.info('info message') logging ...
- bacula 备份恢复
一.数据恢复: 在bacula服务器执行: /opt/bacula/etc/ bconsole #进入交互窗口 *restore #输入restore恢复命令 Automatically select ...
- Python基础知识补充(重要)-作用域、特殊语法
Python作用域 python代码内部块如if语句内声明变量,在if代码段后在调用此变量并未报如“undefinded name"此类错误,例子如下: if 1 == 1: name = ...
- Loadrunder之脚本篇——关联函数对话框详解
Insert->New Step,打开Add Step对话框 选择函数web_reg_save_param,点击OK,打开关联函数设置窗口 说明: Parameter Name 此处设置存放参数 ...