1.介绍
是分布式面向列的数据库,构建在Hadoop之上
类似于goole的big table ,对海量结构化数据的快速随机访问
是Hadoop生态系统的一部分,提供随机实时读写
2.HBASE和hadoop的区别
hdfs | hbase | |
1. | 分布式文件系统,存储大量数据 | 数据库,构建在hdfs之上 |
2. | 不支持快速单个记录查找 | 支持大表的快速查找 |
3. | 提供了高延迟的批处理 | 提供了单行记录低延迟随机访问(10亿级别) |
4. | 只提供数据按序访问 | 内部使用hash表提供的随机访问,在hdfs上存放索引文件,用于快速查找 |
3.存储机制
1.面向列族的数据库
2.table中只定义了列族,表按照row存储
3.术语
table 表,是row的集合
row 列,列族的集合
colulmn family 列族,列的集合
column 列,是kv对的集合
4.面向行和面向列的区别
row | column | |
1 | 适用于OLTP | 适用于OLAP |
2 | .针对行列较少的 | 大表 |
5.hbase和RDBMS区别
hbase | rdbms | |
1 | 是无模式的,没有列的定义,只定义列族,列是Key | 有模式,描述整个table结构 |
2 | 适用于宽表,水平可伸缩 | 适用于窄表,难于扩展 |
3 | 没有事务支持 | 事务性的 |
4 | 不是规范化的 | 规范化的 |
5 | 结构化和半结构化 | 结构化的 |
4.hbase架构
1.master-slave主从结构
2.table从竖直方向进行切割,分成若干个区域,由每个regionserver进行处理
3.master server(ms)
a.负责指派region给rs,通过zk获得task帮助
b.处理跨rs的region的负载均衡问题
c.从繁忙服务到空闲服务器之间的数据转发
d.通过裁定负载均衡判断集群的状态
4.region
被切割的表,跨rs
5.region server(rs)
和client通信
处理数据操作
处理它下面的所有region的读写请求
通过阈值决定region size
6.client Lib