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流理解为⼀种内容聚合器,它可以帮助⽤户实时的获取最新的订阅源内容。
作者:机灵⿁⿁
来源:简书
⼀、Hbase能做什么?

  1. 海量数据存储:
    上百亿⾏ x 上百万列
    并没有列的限制
    当表⾮常⼤的时候才能发挥这个作⽤, 最多百万⾏的话,没有必要放⼊hbase中
  2. 准实时查询:
    百亿⾏ x 百万列,在百毫秒以内
    ⼆、Hbase在实际场景中的应⽤:
  3. 交通⽅⾯:
    船舶GPS信息,全长江的船舶GPS信息,每天有1千万左右的数据存储。
  4. ⾦融⽅⾯:
    消费信息,贷款信息,信⽤卡还款信息等
  5. 电商:
    淘宝的交易信息等,物流信息,浏览信息等
  6. 移动:
    通话信息等,都是基于HBase的存储。
    Hbase的特点:
  7. 容量⼤:
    传统关系型数据库,单表不会超过五百万,超过要做分表分库,不会超过30列
    Hbase单表可以有百亿⾏、百万列,数据矩阵横向和纵向两个维度所⽀持的数据量级都⾮常具有弹性
  8. ⾯向列:
    ⾯向列的存储和权限控制,并⽀持独⽴检索,可以动态增加列,即,可单独对列进⾏各⽅⾯的操作
    列式存储,其数据在表中是按照某列存储的,这样在查询只需要少数⼏个字段的时候,能⼤⼤减少读取的数量
  9. 多版本:
    Hbase的每⼀个列的数据存储有多个Version,⽐如住址列,可能有多个变更,所以该列可以有多个version
  10. 稀疏性:
    为空的列并不占⽤存储空间,表可以设计的⾮常稀疏。
    不必像关系型数据库那样需要预先知道所有列名然后再进⾏null填充
  11. 拓展性:
    底层依赖HDFS,当磁盘空间不⾜的时候,只需要动态增加datanode节点服务(机器)就可以了
  12. ⾼可靠性:
    WAL机制,保证数据写⼊的时候不会因为集群异常⽽导致写⼊数据丢失
    Replication机制,保证了在集群出现严重的问题时候,数据不会发⽣丢失或者损坏
    Hbase底层使⽤HDFS,本⾝也有备份。
    7.⾼性能:
    底层的LSM数据结构和RowKey有序排列等架构上的独特设计,使得Hbase写⼊性能⾮常⾼。
    Region切分、主键索引、缓存机制使得Hbase在海量数据下具备⼀定的随机读取性能,该性能针对Rowkey的查询能够到达毫秒级别
    LSM树,树形结构,最末端的⼦节点是以内存的⽅式进⾏存储的,内存中的⼩树会flush到磁盘中