Hbase原理

发布 : 2016-02-12 分类 : 大数据 浏览 :
1
2
网址:
hbase.apache.org

1.HBase简介

1
2
3
4
HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统
利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群
HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据
利用Zookeeper作为协调工具

思考:怎样存储物流信息

1
2
3
4
5
6
7
运单号:728311858891

2014-01-07 10:09:25上海 已发货
2014-01-07 18:27:32上海航空部已收件
2014-01-07 20:25:38快件离开上海航空部 已发往北京
2014-01-09 08:27:14北京回龙观派件中
2014-01-09 12:37:37北京回龙观已签收

主键:Row Key

1
2
3
4
5
主键是用来检索记录的主键,访问hbase table中的行,只有三种方式

1> 通过单个row key访问
2> 通过row key的range
3> 全表扫描

列族:Column Family

1
列族在创建表的时候声明,一个列族可以包含多个列,列中的数据都是以二进制形式存在,没有数据类型。

时间戳:timestamp

1
HBase中通过row和columns确定的为一个存贮单元称为cell。每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引

HBase基本知识

1
2
物理存储
Table 在行的方向上分割为多个HRegion,一个region由[startkey,endkey)表示

HBase架构体系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Client  包含访问hbase 的接口,client 维护着一些cache 来加快对hbase 的访问,比如regione 的位置信息

Zookeeper

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

存贮所有Region 的寻址入口

实时监控Region Server 的状态,将Region server 的上线和下线信息,实时通知给Master

存储Hbase 的schema,包括有哪些table,每个table 有哪些column family

Master 可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行

为Region server 分配region

负责region server 的负载均衡

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

Region Server

1
2
3
4
维护Master 分配给它的region,处理对这些region 的IO 请求
负责切分在运行过程中变得过大的region

可以看出,client 访问hbase 上数据的过程并不需要master 参与,寻址访问先zookeeper再regionserver,数据读写访问regioneserver。HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。
1
传统关系型数据库:

1
使用HBase的好处就是不需要限定表中的字段

本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2016/02/12/hbase原理/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹