Hbase
HBase即Hadoop Database,是高可靠、高性能,面向列、可伸缩的分布式存储系统,利用HBase可以对大表数据的读、写达到实时级别。
- 面向列是指的是面向列检索,表的结构与mysql 类似。
- 每个记录的组成: 行(主)键(可重复)、时间戳、列族(一个列族包含多条属性 可以理解为一个对象)
- 由于行键可以重复,可以借助列主键(第二维)或者时间戳 达到精确定位 Hbase不支持条件查询和分组查询,只能通过行主键进行查询
总结:
- 一个HMaster 管理着多个Datanode(每一个Datanode 运行一个(或多个)HRegionSerer)
- Region 对表进行划分的基础单位(按照行的方向进行划分)。
- Region包含若干Hstore,每一个Hstore对应一个列族。
Hbase的应用场景
- 对象存储:我们知道不少的头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中
- 时序数据:HBase之上有OpenTSDB模块,可以满足时序类场景的需求
- 推荐画像:特别是用户的画像,是一个比较大的稀疏矩阵,蚂蚁的风控就是构建在HBase之上
- 时空数据:主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在HBase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在HBase之中
- OLAP:Kylin一个cube分析工具,底层的数据就是存储在HBase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求
- 消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上
- Feeds流:典型的应用就是xx朋友圈类似的应用
- NewSQL:之上有Phoenix的插件,可以满足二级索引、SQL的需求,对接传统数据需要SQL非事务的需求
Hbase与Cassandra的区别
- Hbase优势在于读
- Cassandra优势在于写