Hbase基础介绍-1 概述
- 一、概述
- 1、定义:
- 2、特点:
- 3、HBase在Hadoop生态中的地位
- 4、HBase与HDFS
- 5、Hbase与Hive
- 6、关系型数据库与列式数据库
- 7、结构化数据和非结构化数据
- 8、HBase使用场景
- 9、CAP定理
- 10、Hbase与传统关系型数据库的区别
一、概述
1、定义:
HBase是一个分布式的、面向列的开源数据库,是Google BigTable的开源实现,不同于一般的关系数据库,适合非结构化数据存储。
2、特点:
适合大规模海量数据,PB级数据;分布式、并发数据处理,效率极高;易于扩展,支持动态伸缩;适用于廉价设备;不适用于传统关系型数据的存储;可以支撑在线业务。
3、HBase在Hadoop生态中的地位
HBase是Apache基金会顶级项目,HBase基于HDFS进行数据存储,HBase可以存储超大数据并适合用来进行大数据的实时查询。
4、HBase与HDFS
(1)HBase建立在Hadoop文件系统上,利用了HDFS的容错能力;
(2)HBase提供对数据的随机实时读/写访问功能;
(3)HBase内部使用哈希表,并存储索引,可以快速查找HDFS中数据。
5、Hbase与Hive
(1)共同点:都可以处理海量数据;文件都是保存到HDFS上。
(2)不同点:Hbase的计算不通过MapReduce,自己实现CRUD功能,可以有集群,通过zookeeper实现管理,可以实时计算;Hive通过MapReduce实现数据查询,只能做离线计算。
6、关系型数据库与列式数据库
关系型数据库以行为单位进行存储,连续存储,记录在一个连续的存储空间中。
列式数据库以列为单位进行存储,不同列之间存储的位置不连续。
7、结构化数据和非结构化数据
结构化数据:有严格的数据模型,适合用二维表来展示的数据,表结构不会频繁调整。
非结构化数据:非结构化数据是数据结构不规则或不完整;没有预定义的数据模型;不方便用数据库二维逻辑表来表现,例如办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等。
8、HBase使用场景
瞬间写入量很大;大量数据需要长期保存,且数量会持续增长;HBase不适合有join、多级索引、表关系复杂的数据模型。
注意:Hbase只支持行级别的事务
9、CAP定理
分布式系统的最大难点,就是各个节点的状态如何同步。CAP定理是这方面的基本定理,也是理解分布式系统的起点。
一致性(C):所有节点在同一时间具有相同的数据。
可用性(A):保证每个请求不管成功或失败都有响应,但不保证获取的数据的正确性。
分区容错性(P):系统中任意信息的丢失或失败不会影响系统的运行,系统如果不能在某个时限内达成数据一致性,就必须在上面两个操作之间做出选择。
hbase是CAP中的CP系统,即hbase是强一致性的。
10、Hbase与传统关系型数据库的区别
Hbase | 关系型数据库 | |
---|---|---|
数据库大小 | PB级别 | GB、TB级别 |
数据类型 | Bytes | 丰富的数据类型 |
事务 | ACID只支持单个Row级别 | 全面的ACID支持,多Row和表 |
索引 | 只支持Row级别 | 支持 |
吞吐量 | 百万写入/秒 | 千写入/秒 |