基于HBase的大数据存储在京东的应用场景

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,适用于结构化的存储,底层依赖于Hadoop的HDFS,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。因此,HBase被广泛使用在大数据存储的解决方案中。

为何使用HBase

1、HBase的优点:

  • 列可以动态增加,并且列为空就不存储数据,节省存储空间

  • HBase自动切分数据,使得数据存储自动具有水平scalability

  • HBase可以提供高并发读写操作的支持

2、HBase的缺点:

  • 不能支持条件查询,只支持按照Row key来查询

  • HBase并不适合传统的事物处理程序或关联分析,不支持复杂查询,一定程度上限制了它的使用,但是用它做数据存储的优势也同样非常明显

因为HBase存储的是松散的数据,所以如果你的应用程序中,数据表每一行的结构是有差别的,那么可以考虑使用HBase。

因为HBase的列可以动态增加,并且列为空就不存储数据,所以如果你需要经常追加字段,且大部分字段是NULL值的,那可以考虑HBase。

因为HBase可以根据Rowkey提供高效的查询,所以如果你的数据(包括元数据、消息、二进制数据等)都有着同一个主键,或者你需要通过键来访问和修改数据,使用HBase是一个很好地选择。

如何使用HBase

场景一:卖家操作日志

卖家操作日志,顾名思义是用来记录商家操作的系统,从而可以保证商家可以精确查询自己的各种操作。京东有几十万的商家时时刻刻的进行着各种操作,因此卖家操作日志的特点是:数据量大、实时性强、增多查少。

做卖家操作日志初期,将所有的操作日志存放在ES中,操作日志的数据量是非常大的,但当时所能申请到的ES资源有限。当把大量的数据存储到有限的ES集群中时便导致了性能的下降。在这种情况下,选择了只在ES集群中存储最近三个月的数据,对其提供灵活的查询,而长期的数据存储使用HBase来进行。这样便可以实现对近期操作灵活展现,对长期数据也有精确备份。

场景二:京麦消息日志的存储

京麦消息日志的存储是属于京麦筋斗云系统(用于打造京麦消息生态系统闭环)不可或缺的一部分,其中包含消息的全链路追踪以及消息的统计分析。京麦消息每天都会有几千万的消息量,如何对消息进行追踪和统计便成为了一个至关重要的问题。

消息追踪要求实时性、多维度精确查询,因此选择将最近一周的消息日志存储在ES。统计分析要求有足够多的数据,因此在将数据存储在ES中的同时也存储在HBase中一份。最终再定期将HBase中的数据导入到京东的数据集市中,这样便可以很方便的对京麦消息进行统计分析。

使用HBase时应注意的问题

基于HBase的系统设计与开发中,需要考虑的因素不同于关系型数据库,HBase模式本身很简单,但赋予你更多调整的空间,有一些模式写性能很好,但读取数据时表现不好,或者正好相反,类似传统数据库基于范式的OR建模,在实际项目中考虑HBase设计模式是,需要从以下几方面内容着手:

  • 这个表应该有多少个列簇

  • 列簇使用什么数据

  • 每个列簇应有多少个列

  • 列名应该是什么,尽管列名不必在建表时定义,但是读写数据时是需要的

  • 单元应该存放什么数据

  • 每个单元存储什么时间版本

  • 行健结构是什么,应该包括什么信息

 转载自:基于HBase的大数据存储在京东的应用场景

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值