Hbase学习

参考:
HBase笔记整理(一)

HBase概述

  • 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,
  • 利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
  • HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,
  • 利用Zookeeper作为协调工具。
  • 特点:
    高可靠性
    高性能
    面向列
    可伸缩
    表的特点
    纵向扩展
    横向扩展
    部署上来说:
    分布式集群

HBase设计初衷,是为了企业中的大表,面向上百万列,上百亿条记录设计的数据库。
可以分布式存储海量的数据
具有容错能力强,数据高可靠的特点
HBase是一个列式NoSQL数据库
数据存储的结构是按照列进行存储。按照列进行存储的数据库产品,一般都有行键的概念。
使用行键,可以标示一行数据。理解行键的时候,可以简单的认为是RDBMS中的PK。
Hbase存储数据的物理结构是key-value形式。key就是行键。
同时可以非常方便的进行横向扩展(scale out,纵向扩展scale up)。

HBase体系结构

  • 逻辑结构:

表(table)
划分数据集合的概念,和传统的db中的表的概念是一样的。

行健(RowKey):
一行数据的唯一标示,要想操作(read/write)一条数据,必须通过行健,其在hbase底层都是使用字节数组进行存放,
所以方便我们使用rk进行排序,
行键是字节数组, 任何字符串都可以作为行键;表中的行根据行键进行排序,数据按照Row key的字节序(byte order)排序存储;
所有对表的访问都要通过行键 (单个RowKey访问,或RowKey范围访问,或全表扫描)。

列族(columnFamily)
简单的认为是一系列“列”的集合。列族是以单独的文件进行存储。

列限定符(column Qualifier)
或者叫列。列里面的数据定位通过列限定符 每个CF可以有一个或多个列成员(ColumnQualifier),
列成员不需要在表定义时给出,新的列族成员可以随后按需、动态加入。时间戳(version)
在单元格中可以存放多个版本的数据。

单元格(cell)
Cell 由行键,列族:限定符,时间戳唯一决定,Cell中的数据是没有类型的,全部以字节码形式存贮,主要用来存储数据。

单元格的图示如下:


Hbase学习_第1张图片

物理结构:


HMaster ----->NameNode
管理节点

HRegionServer----->DataNode
存放Region的服务器

HRegion
存放hbase中数据的一个概念,可以简单的理解为表,存放一张表中的一部分数据,当该region中的数据超过一定量的时候,会自动进行分裂,
分裂成两个region(一份为二),从这个角度上而言,Region是对hbase中表的一个横向的划分。

HFile
在hdfs上存放数据之前的一个物理结构,用于接收从客户端提交过来的数据。

一个集群中有多个HRegionServer
|-----一个HLog
|-----多个HRegion
|---多个Store
|----一个CF

你可能感兴趣的:(Hbase学习)