Hbase模型与框架分享(2)—Hbase简介

  • (1)定义:
        HBase : Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。
        利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
  • (2)HBase是Google Bigtable的开源实现
 

BigTable

HBase

文件存储系统

GFS

HDFS

数据处理

MapReduce

Hadoop MapReduce

协调服务

Chubby

Zookeeper

  • (3)hbase在hadoop生态系统中的位置

其中HBase位于结构化存储层

Hadoop HDFS为HBase提供了高可靠性的底层存储支持。

Hadoop MapReduce为HBase提供了高性能的计算能力

Zookeeper为HBase提供了稳定服务和failover机制。

Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。

 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

  • (4) Hbase访问接口

a.   Native Java API:

    最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据

b.   HBase Shell:

    HBase的命令行工具,最简单的接口,适合HBase管理使用

c.   Thrift Gateway:

    利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据

d.   REST Gateway:

    支持REST 风格的Http API访问HBase, 解除了语言限制

e.   Pig:

    可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似。

    本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计。

f.   Hive:

    可以使用类似SQL语言来访问HBase。

  • (5)hbase数据模型

 (a) Table & Column Family

(b).  Table & Region

当Table随着记录数不断增加而变大后,会逐渐分裂成多份splits,成为regions,一个region由[startkey,endkey)表示,不同的region会被Master分配给相应的RegionServer进行管理:


(c) - ROOT- && .META. Table

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

Ø  .META.:记录了用户表的Region信息,.META.可以有多个regoin

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

Ø  Zookeeper:记录了-ROOT-表的location

  • (5) hbase体系结构
  • (6) hbase存储格式

HBase中的所有数据文件都存储在Hadoop HDFS文件系统上,主要包括上述提出的两种文件类型:

a).  HFile:

    HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件。

    实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile。

b). HLog File:

    HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File。

猜你喜欢

转载自gaoxianwei.iteye.com/blog/2166869