天天看点

<html>

数据库是保存数据的,在我们工作中是必需要接触到的。接下来说说hadoop中用到的数据库。

HBase:

一、说明是HBase?

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

例如以下图,是hbase的数据模型

<html>

1、逻辑数据模型

<html>

2、物理数据模型

<html>

3、HBASE中的每一张表,就是所谓的BigTable。稀疏表。

RowKey 和 ColumnKey 是二进制值byte[],按字典顺序排序。

Timestamp 是一个 64 位整数;

value 是一个未解释的字节数组byte[]。

表中的不同行能够拥有不同数量的成员。即支持“动态模式“模型

字符串、整数、二进制串甚至串行化的结构都能够作为行键

表依照行键的“逐字节排序”顺序对行进行有序化处理

表内数据很‘稀疏’,不同的行的列的数全然目能够大不同样

能够仅仅对一行上“锁”

对行的写操作是始终是“原子”的

列必须用‘族’(family)来定义

随意一列有例如以下形式

“族:标签”

当中。族和标签都可为随意形式的串

物理上将同“族”数据存储在一起

数据可通过时间戳区分版本号

表是存放数据的。

表由行和列组成

4、数据模型

 Row Key: 行键,Table的主键。Table中的记录依照Row Key排序

Timestamp: 时间戳,每次数据操作相应的时间戳,能够看作是数据的version number

Column Family:列簇,Table在水平方向有一个或者多个Column Family组成。一个Column Family中能够有随意多个Column组成。即Column Family支持动态扩展,无需预先定义Column的数量以及类型。全部Column均以二进制格式存储。用户须要自行进行类型转换。

5、物理存储

     Table 在行的方向上切割为多个HRegion,一个region由[startkey,endkey)表示。每一个HRegion分散在不同的RegionServer中

<html>

6、架构体系

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

<html>

架构体系

Region Server

维护Master 分配给它的region,处理对这些region 的IO 请求

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

       能够看出,client 訪问hbase 上数据的过程并不须要master 參与,寻址訪问zookeeper 和region server,数据读写訪问regioneserver。

HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。

HBase中有两张特殊的Table。-ROOT-和.META.

 .META.:记录了用户表的Region信息。.META.能够有多个regoin

 -ROOT-:记录了.META.表的Region信息,-ROOT-仅仅有一个region

 Zookeeper中记录了-ROOT-表的location

Client訪问用户数据之前须要首先訪问zookeeper,然后訪问-ROOT-表,接着訪问.META.表,最后才干找到用户数据的位置去訪问

<html>
<html>

继续阅读