HBase

HBase是一个构建在HDFS上的分布式列存储系统,主要用于海量结构化数据存储,从逻辑上讲,HBase将数据按照表、行和列进行存储。

HDFS适合批处理场景

        不支持数据随机查找

        不适合增量数据处理

        不支持数据更新

以上HDFS不适合、不支持的场景,HBase都支持

        大数据上高并发操作,比如每秒对PB级数据进行上千次操作,并且读写访问均是非常简单的操作。

Hbase表的特点

        大:一个表可以有数十亿行,上百万列;

        无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;

        面向列:面向列(族)的存储和权限控制,列(族)独立检索;

        稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏;

        数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;

数据类型单一:Hbase中的数据都是字符串,没有类型。

行存储和列存储的比较

传统行式数据库

        数据是按行存储的

        没有索引的查询使用大量I/O

        建立索引和物化视图需要花费大量时间和资源

        面向查询的需求,数据库必须被大量膨胀才能满足性能要求

列式数据库

        数据是按列存储-每一列单独存放

        数据即是索引

        指访问查询涉及的列-大量降低系统I/O

        每一列由一个线程来处理-查询的并发处理

        数据类型一致,数据特征相似-高效压缩

基本概念

    Row Key

        Byte array

        表中每条记录的“主键”

        方便快速查找

    Column Family

        拥有一个名称(string)

        包含一个或者多个相关列

    Column

        属于某一个Column Family

        包含在某一列中

                familyName:columnName

    Version Number

        每个rowkey唯一

        默认值: 系统时间戳

        类型为Long

    Value (Cell)

        Byte array

数据模型

        HBase schema可以有多个 Table

        每个表可由多个Column Family组成

        HBase 可以有 Dynamic Column

                列名称是编码在cell中的

                不同的cell可以拥有不同的列

        version number 可由用户提供

                无需以递增的顺序插入

                每一行的rowkey必须是唯一的

        Table 可能非常稀疏

                很多 cell 可以是空的 

        Row Key是主键

HBase支持操作

    所有操作都是基于rowkey的

    支持crud和scan

    单行操作:put、get、scan

    多行操作:MultiPut、scan

    没有内置join操作,可以使用MapReduce解决

物理模型

    rowkey和version number在每个column family中都有一份

每个column family存储在HDFS上的一个单独文件中(就是store)

控制不会被保存,不占存储空间

以上特点类似分库技术中的垂直切分,提高了并发访问速度

物理存储

    1、Table中的所有行都按照row key的字典序排列; 

    2、Table 在行的方向上分割为多个Region;

    3、Region按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region,之后会有越来越多的region;

    4、Region是HBase中分布式存储和负载均衡的最小单元。不同Region分布到不同RegionServer上;

    5、Region虽然是分布式存储的最小单元,但并不是存储的最小单元。

                Region由一个或者多个Store组成,每个store保存一个columns family;

                每个Strore又由一个memStore和0至多个StoreFile组成;

                memStore存储在内存中,StoreFile存储在HDFS上。

HBase架构

HBase基本组件

    Client

            包含访问HBase的接口,并维护cache来加快对HBase的访问

    Zookeeper

Hbase依赖Zookeeper,hbase会管理zookeeper的实例

            保证任何时候,集群中只有一个master

            存储所有region的寻址入口

            实时监控region server的上线和下线信息,并实时通知给master

            存储hbase的schema和table元数据

    Master

            为region server分配region

            负责region server的负载均衡

            发现失效的region server并重新分配其上的region

            管理用户对table的增删改查操作

    Region Server

            维护region,处理对这些region的IO请求

            负责切分在运行过程中变得过大的region

HBase容错性

    Master容错:zookeeper重新选择一个新的master

            无master过程中,数据读取仍照常运行

            无master过程中,region切分、负载均衡等无法进行

    region server容错:定时向zookeeper汇报心跳,如果一段时间内未出现心跳

            master将该region server上的region重新分配到其他region server上

            失效服务器上预写日志由主服务器进行分割并派送给新的region server

    zookeeper容错:zookeeper是一个可靠的服务

            一般配置3或5个zookeeper实例

Region定位

关系数据库和HBase比较

Hbase在淘宝的应用

        淘宝指数

        交易历史记录查询系统

Facebook已经放弃了自己创建的Cassandra,使用了HBase

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

推荐阅读更多精彩内容

  • 最近在逐步跟进Hbase的相关工作,由于之前对Hbase并不怎么了解,因此系统地学习了下Hbase,为了加深对Hb...
    飞鸿无痕阅读 50,224评论 19 272
  • 该文档是用Hbase默认配置文件生成的,文件源是Hbase-default.xml hbase.rootdir 这...
    我是嘻哈大哥阅读 4,760评论 0 7
  • 1. HBase介绍,Hbase是什么? HBase -- Hadoop Database ,是一个高可靠、高性能...
    奉先阅读 3,744评论 1 36
  • HBase那些事 @(大数据工程学院)[HBase, Hadoop, 优化, HadoopChen, hbase]...
    分痴阅读 3,939评论 3 17
  • Hbase架构与原理 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang所撰写的Goo...
    全能程序猿阅读 86,296评论 2 37