HBASE

来源:互联网 发布:360度全景图制作 js 编辑:程序博客网 时间:2024/05/16 23:49

ZHUANZI:http://blog.csdn.net/u014726937/article/details/51942654


Hbase简介

1.1 简介

1)Hbase是一个分布式的、多版本的、面向列的开源数据库

2)hbase利用Hadoop HDFS 作为其文件存储系统,提供高可靠性、搞性能、列存储、可升缩、实时读写、适用于非结构化数据存储的数据库系统

3)Hbase利用hadoop MapReduce来处理Hbase中的海量数据

4)Hbase利用Zookeeper作为分布式协同服务

1.2 特点

1)数据量大:一个表可以有上亿行,上百万列(列多时,插入变慢)

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

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

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

5)无类型: HBase中的数据都是字符串,没有类型

6)强一致性:同一行数据的读写只在同一台Region Server上进行

7)有限査询方式:仅支持三种査询方式(单个rowkey査询,通过rowkey的range査询, 全表扫描)

rowkey的range査询, 全表扫描)

8)高性能随机读写

1.3 数据模型

1)行:同一个key对应的所有数据

2)列族:相似的列数据通常被划分成一个列族,建表时确定

3)列:列名在写入时确定

4) Cell及时间戳(版本): 
   每个cell有任意多的版本 
   建表时设置每个列族可以保留多少个版本

5)三维有序

SortedMap(RowKey,    List(SortedMap(Column,        List(Value, TimeStamp))))rowkey(ASC)+ columnLabel(ASC)+ Version(DESC) -> value

这里写图片描述

1.4 体系架构

这里写图片描述

1) Client

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

2) Zookeeper

  保证任何时候,集群中只有一个(H)master;

  存贮所有Region的寻址入口;

  实时监控Regionserver的上线和下线信息,并实时通知给Master

  存储HBase的schema和table元数据

3) (H)Master

  为Region server分配region;

  负责Region server的负裁均衡;

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

  管理用户对table的增册改査操作

4) (H)RegionServer

  负责维护region, 处理对这些region的I/O请求; 
   
  负责切分在运行过程中变得过大的 region

两个重要的表: 
这里写图片描述

5) ROOT表 
  记录META表中每个region的位置,ROOT表最多只有一个region 
Zookeeper中记录了ROOT表的location

6)META表 
  记录各个表中每个region所在的region server,META表可能包含多个region

1.5 Hbase部署模型

这里写图片描述

1.6 Hbase操作

1)flush

内存容量有限,需要定期将内存中的数据flush到磁盘

每次flush, 每个region的每个column family都会产生一个HFile

读取操作, regionserver会把多个HFile数据归并到一起

2)compaction (归并)

flush操作产生的HFile会越来越低,需要归并来减少HFile的数量

旧数据会被清理


原创粉丝点击