Hbase数据库

海量数据存储解决方案:Hbase数据库解析

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang
所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

HBase的应用场景及特点
交通
金融
电商
移动(电话信息)等

Hbase表结构与架构详解

介绍:基于HDFS,面向列,nosql

基于HDFS:
HDFS:hadoop distributed file system:分布式文件系统:多台服务器组成的服务器集群组成的一个文件系统。

面向列:
表结构中的列是可以动态添加的。

架构图:分布式,主从架构
Hbase数据库

zookeeper:
职责:
1:保证任何时候,集群中只有一个Master
2: 实时监控RegionServer的上线和下线信息,并且实时通知master
3: 存储着region的寻址入口
Hmaster:
职责:
1:为regionserver分配region
2:发现了失效了regionserver,并且重新分配其上的region
3: 为regionserver做负载均衡
RegionServer:
职责:
1:regionserver负责维护region,处理对这些region的IO请求
2:regionserver负责在运行过程当中变得过大的region

搭建环境:
HDFS+Hbase

表结构:
Hbase数据库

列族:列的集合,它是表模式不能修改的。
列:一定要归属于某一个列族,列可以动态的添加
行键:rowkey
确定这一行数据的唯一标识 特点: 1 按照字典顺序排序
2 只能存储64k的数据

单元格:行键+列
时间戳:区分一个单元格里面的多份数据,默认使用系统时间。

Hbase数据库的操作

shell命令行:
list:列出所欲表
create “表名”,“列族”,“多个列族”
put “表名”,“行键”,“列族:列”,“值”
get “表名”,“行键”
disable 表名 drop 表名 删除表
scan:查询全名
sqoop:数据传输