HBase最简洁的经验总结

HBase基于Apache Hadoop的应用,是谷歌Bigtable的开源实现,运行在HDFS文件系统之上。尤其适合于存储海量数据。

关于Hbase的文献

HBase参照谷歌的论文 Bigtable: A distributed storage system for structured data,进行的开源实现。了解Bigtable就意味着了解了HBase,不过其中术语名称有了改变。

HBase官网的Apache HBase Reference Guide是HBase研发团队提供的最权威的HBase详细介绍,随着版本的不断更新,文档也是同步更新的。

HBase的基础知识

1. 表(table)

HBase数据访问和存储通过表进行。数据存储在数据表中,没有数据类型,全部作为字节处理。数据表中的数据存储在HDFS文件系统中。

2. 行(row)

行的唯一标示是rowkey,rowkey同样不具有数据类型,总是被当做byte数组对待。行按照rowkey的字典顺序排序,HBase分表时按照行进行负载。

A row must never exhibit so-called "time-travel" properties.

在HBase中提供的行操作具有原子性,不会产生数据的幻读。

3. 列族(column family)

其实列族是列的集合,一个列族包含有多个列(column qualifier)。在基本的列概念上,将一些列整合为列族。

列族影响着HBase中的物理存储,在表中每行数据,即使部分列族没有数据仍会具有相同的列族,这点与列不同。

4. 列(column qualifier)

列属于某一个列族中,不需要提前确定,在数据写入时可以动态增加,所以不同的行可以具有不同的列。这一个特点也是HBase适用于大数据存储的原因,因为不需要的字段在不写入的情况下不占用任何空间。

5. 单元(cell)

HBase中存储数据的最小单位。每个单元数据都具有一个写入时的时间戳,不同版本的值按照时间戳排序,这样最新版本的数据总可以先读到。单元中数据value被赋值之后,可以由rowkey,列族,列和时间戳查询

6. 时间戳(timestamp)

每个cell写入时都会伴随一个时间戳的写入,也就是意味着一个cell中保存着不同版本的值(可以设定保留的版本个数),API获取是最新时间戳的值。

7. 三个主要的操作

Get:读取操作
Put:写入操作
Scan:表遍历操作

8. rowkey是写入行时确定的,与MySql数据库不同,不能通过指定哪个列为主键而改变rowkey。

9. key-value结构

在HBase的使用中,把数据看做key-value结构进行理解,例如:rowkey为key,则行数据为value;rowkey,列族,列为key,则cell的值为value。

10. rowkey的定义最重要

rowkey是查询行的唯一标识,负载时分配region又是以行为基础。rowkey的设计直接关系到region的热点情况,如果查询量大的rowkey集中在少数一个或几个region上,那么这些region就会成为热点,建议使用哈希值。另外rowkey组成的成分要有意义,这样可以指定区间scan出特定数据。

11. 原子性操作在row层面上,不存在多row的事务性操作

12. 列是动态添加的

13. 推荐使用较短的列族名

因为在读写HBase时,必定传输列族,过长的列族名会增大I/O开销

写在最后

就开发者而言,上面的13条足够应付平时工作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,050评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,538评论 1 306
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,673评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,622评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,047评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,974评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,129评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,893评论 0 209
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,654评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,828评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,297评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,619评论 3 262
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,326评论 3 243
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,176评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,975评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,118评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,909评论 2 278

推荐阅读更多精彩内容

  • 一、简介 Hbase:全名Hadoop DataBase,是一种开源的,可伸缩的,严格一致性(并非最终一致性)的分...
    菜鸟小玄阅读 2,312评论 0 12
  • 原创文章,转载请注明原作地址:http://www.jianshu.com/p/0f9578df7fbc 一. 架...
    EchoZhan阅读 15,061评论 4 33
  • 一、存储模式 1.1 行式存储&列式存储 定义 以行为存储基准的存储方式称为行式存储,一行的数据聚合存储在一块; ...
    要记录的Ivan阅读 3,246评论 0 1
  • 1. Hbase基本概念 一. 为什么要用hbase 相比于HDFS HDFS适合批处理场景, 但不支持数据的随机...
    lj72808up阅读 446评论 0 0
  • [TOC] 一、RowKey 的作用 HBase 由于其存储和读写的高性能,在 OLAP 即时分析中越来越发挥重要...
    w1992wishes阅读 2,108评论 1 1