HBase介绍:
1、分布式开源数据库
2、面向列
3、Big Table开源实现
4、适合非结构化数据的存储
5、PB级别的数据
6、可以支撑在线业务
7、分布式系统特点
8、分布式系统特点:易于扩展,支持动态伸缩,并发数据处理。
面向列数据库
1、关系型数据库:行式存储,每一行数据都是连续的,所有的记录都放到一个连续的存储空间中。
2、列数据库:行式存储,每一列对应一个文件,不同列并不对应连续的存储空间。
3、结构化数据V.S.非结构化数据
结构化数据
预定义的数据模型,模型一旦确定不会经常变化
非结构化数据
没有预定义数据模型
模型不规则,不完整
文本,图片,视频,音频
Hive和Hbase的区别
1、hive和Hbase共同点
都可以处理海量数据
文件都是保存在hdfs上
2、hive和hbase不同
计算不是通过mapreduce实现的,自己实现的CRUD功能
hive通过mapreduce实现,数据查询的
hbase可以有集群,集群的管理是通过zookeeper实现
hive只做离线计算
Hbase提供对数据的随机实时读/写访问功能
HBase对事务的支持,支持行级别的事务
CAP定理:
1、分布式系统的最大难点,就是各个节点的状态如何同步,
2、分区容错性:分布式系统都要有的特性,任何时候都要能提供服务。
3、一致性(所有节点在同一时间具有)
HBase CP系统,强一致性
HBase数据模型
NameSpace 对应 关系型数据库database
表(table):用于存储管理数据,具有稀疏的、面向列的特点。
行(row):每一行都对应一个row key行键Hbase有索引但是只是在行键rowkey有索引
列族(ColumnFamily) 键值对集合 Key:value
Zookeeper
1、保证HMaster有一个活着
2、HRegionServer HMaster地址存储
3、监控Region Sever状态,将Region Server信息通知HMaster
4、元数据存储
HMaster
面向列数据库 列式存储
适合存非关系型数据
hbase创建表的过程很简单,只需要指定表名和列族的名字就可以了。
NameSpace->>数据库
table
row-key 行键
column family 列族
组件
HMaster
HRegionServer
HRegion
Hstore
memstore
storefile
分区:
优化查询