1. Hbase 概念
1.1. Hadoop 的局限
- 要查找数据必须搜索整个数据集,如果要进行随机读取数据,效率较低;
- Hadoop 主要是实现批量数据的处理,并且通过顺序方式访问数据;
- Hadoop 适合做一些批量数据处理,适用于吞吐量比较高的场景,但是不适用于随机查询、实时操作
1.2. Hbase 定义
- HBase 建立在 Hadoop 集群 HDFS 之上,提供:
- 高可靠性
- 高性能
- 列存储
- 可伸缩
- 实时读写
- NoSQL 的数据库系统;
- HBase 本质是一个 NoSQL;
- HBase 是 Google BigTable 的开源 java 版本;
2. HBase 的特点(基于应用视角)
- 查询
- Hbase 查询数据功能很简单:
- HBase 不支持 join 等复杂操作;
- HBase 不支持复杂的事务(行级的事务);
- HBase 仅能通过主键(row key)和主键的 range 来检索数据;
- 相比较而言,MySQL 可以指定 where 条件限定查询范围;
- Hbase 查询数据功能很简单:
- 存储
- HBase 主要用来存储结构化和半结构化的松散数据;
- HBase 仅支持单行事务;
- 从技术上来说,HBase 更像是一个「数据存储」而不是「数据库」,因为 HBase 缺少 RDBMS 中的许多特性,例如:带类型的列、二级索引以及高级查询语言等;
- HBase 没有列类型概念;
- Hbase 中支持的数据类型:byte[];
- 扩展
- HBase 的主要目标是横向扩展,通过不断增加廉价的服务器,来增加存储和处理能力;
- 例如:把集群节点由 10 个增加到 20 个,存储能力和处理能力都会加倍;
- HBase 的主要目标是横向扩展,通过不断增加廉价的服务器,来增加存储和处理能力;
3. HBase 自身特性
- 强一致性读/写
- HBASE 不是“最终一致的”数据存储;
- HBASE 非常适合于诸如高速计数器聚合等任务;
- 自动分块
- HBase表通过Region分布在集群上;
- 随着数据的增长,区域被自动拆分和重新分布;
- 自动 RegionServer 故障转移
- Hadoop/HDFS集成
- HBase 支持 HDFS 开箱即用作为其分布式文件系统;
- MapReduce
- HBase 通过 MapReduce 支持大规模并行处理,将 HBase 用作源和接收器;
- Java Client API
- HBase 支持易于使用的 Java API 进行编程访问;
- Thrift/REST API
- 块缓存和布隆过滤器
- HBase 支持块 Cache 和 Bloom 过滤器进行大容量查询优化;
- 运行管理
- HBase 为业务洞察和 JMX 度量提供内置网页。
4. HBase 局限性
- HBase 不支持 join 等复杂操作;
- HBase 不支持复杂的事务(行级的事务);
- HBase 仅能通过主键(row key)和主键的 range 来检索数据;
5. HBase 应用场景
- HBase 适用场景:
- 海量数据存储;
- 快速读写;
5.1. Hbase 表特点
- 一般是大表
- 一个表上十亿行、上百万列;
- 面向列存储
- 面向列(族)存储和权限控制,列(族)独立检索;
- 稀疏
- 对于为空(null)的列,并不占存储空间;
- 一般用在实时处理中;
5.2. 对象存储
- 不少的头条类、新闻类的的新闻、网页、图片存储在 HBase 之中,一些病毒公司的病毒库也是存储在 HBase 之中;
5.3. 时序存储
- HBase 之上有 OpenTSDB 模块,可以满足时序类场景的需求;
5.4. 推荐画像
- 用户标签,是一个比较大的稀疏矩阵;
- 例如:蚂蚁金服的风控就是构建在 HBase 之上;
5.5. 时空数据
- 主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在 HBase 之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在 HBase 之中;
5.6. Cube OLAP
- Kylin一个cube分析工具,底层的数据就是存储在HBase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求
5.7. 消息/订单
- 在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上
5.8. Feeds 流
- 典型的应用就是xx朋友圈类似的应用,用户可以随时发布新内容,评论、点赞。
5.9. NewSQL
- 之上有Phoenix的插件,可以满足二级索引、SQL的需求,对接传统数据需要SQL非事务的需求
5.10. 其他
- 存储爬虫数据
- 海量数据备份
- 短网址
- 等