HBASE应用场景

1、用户画像

比如大型的视频网站,电商平台产生的用户点击行为、浏览行为等等存储在HBase中为后续的智能推荐做数据支撑。

2、消息/订单存储

这个场景主要应用在电商平台,因为HBase提供了一个低延时、高并发的访问能力

3、对象存储

这里的对象存储实际是中等对象存储,是对HDFS存储文件的一个缓冲过度,因为如果我们大量的1M或2M这种小文件直接存储在HDFS上,会对NAMENODE造成元数据维护的压力,所以在HBase中可以很好的做过度合并后在持久化到HDFS上。HBase提供了中等对现象的存储能力,中等对象的大小范围在100k至10M之间。

4、时序数据

这里的时序数据是指随着时间而变化的数据,比如速度的展示,天气、温度、风速、车流量等等

5、Cube分析(KyLin)

通过KyLin将Hive或kafka中的数据,来构建Cube,这些Cube会存储在HBase中,以供其他的应用或其他的系统做实时查询或实时展示。

6、Feeds流

这个场景主要是应用在抖音、或其他小视频系统中,可以把Feeds流理解为一种内容聚合器,它可以帮助用户实时的获取最新的订阅源内容。

作者:机灵鬼鬼

链接:https://www.jianshu.com/p/18e2a7fd96ae

来源:

一、Hbase能做什么?

1. 海量数据存储:

上百亿行 x 上百万列

并没有列的限制

当表非常大的时候才能发挥这个作用, 最多百万行的话,没有必要放入hbase中

2. 准实时查询:

百亿行 x 百万列,在百毫秒以内

二、Hbase在实际场景中的应用:

1. 交通方面:

船舶GPS信息,全长江的船舶GPS信息,每天有1千万左右的数据存储。

2. 金融方面:

消费信息,贷款信息,信用卡还款信息等

3. 电商:

淘宝的交易信息等,物流信息,浏览信息等

4. 移动:

通话信息等,都是基于HBase的存储。

Hbase的特点:

1. 容量大:

传统关系型数据库,单表不会超过五百万,超过要做分表分库,不会超过30列

Hbase单表可以有百亿行、百万列,数据矩阵横向和纵向两个维度所支持的数据量级都非常具有弹性

2. 面向列:

面向列的存储和权限控制,并支持独立检索,可以动态增加列,即,可单独对列进行各方面的操作

列式存储,其数据在表中是按照某列存储的,这样在查询只需要少数几个字段的时候,能大大减少读取的数量

3. 多版本:

Hbase的每一个列的数据存储有多个Version,比如住址列,可能有多个变更,所以该列可以有多个version

4. 稀疏性:

为空的列并不占用存储空间,表可以设计的非常稀疏。

不必像关系型数据库那样需要预先知道所有列名然后再进行null填充

5. 拓展性:

底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加datanode节点服务(机器)就可以了

6. 高可靠性:

WAL机制,保证数据写入的时候不会因为集群异常而导致写入数据丢失

Replication机制,保证了在集群出现严重的问题时候,数据不会发生丢失或者损坏

Hbase底层使用HDFS,本身也有备份。

7.高性能:

底层的LSM数据结构和RowKey有序排列等架构上的独特设计,使得Hbase写入性能非常高。

Region切分、主键索引、缓存机制使得Hbase在海量数据下具备一定的随机读取性能,该性能针对Rowkey的查询能够到达毫秒级别

LSM树,树形结构,最末端的子节点是以内存的方式进行存储的,内存中的小树会flush到磁盘中(当子节点达到一定阈值以后,会放到磁盘中,且存入的过程会进行实时merge成一个主节点,然后磁盘中的树定期会做merge操作,合并成一棵大树,以优化读性能。)

LSM树的介绍:https://www.cnblogs.com/yanghuahui/p/3483754.html

总结:

面向列,容量大,写入比mysql快但是读取没有,超过五百万条数据的话建议读写用Hbase

转:https://www.jianshu.com/p/fe63e9786146

你可能感兴趣的:(HBASE应用场景)