java spark hbase_Spark与HBase的整合

本文介绍了如何在Java中使用Spark StreamingPro与HBase进行整合,讨论了在处理大量列时面临的挑战,并提出了两种解决方案:自动获取HBase列形成Schema和规定HBase使用两个列的方案。还分享了一个简单的HBase DataSource实现示例。
摘要由CSDN通过智能技术生成

前言

之前因为仅仅是把HBase当成一个可横向扩展并且具有持久化能力的KV数据库,所以用于指标存储。这次将HBase用在用户行为存储上,因为Rowkey的过滤功能也很不错,可以很方便的把按人或者内容过滤出所有的行为,从某种意义上,HBase的是有且仅有一个多字段复合索引存储。

虽然我比较推崇实时计算的,然而补数据或者需要计算历史数据的时候,批处理就少不了。这里有两个选择,一个是基于HBase的行为数据进行计算,或者基于原始的Hive数据进行计算,最终选择了前者,这里就涉及到Spark(StreamingPro) 对HBase的操作了。

难点

和Spark 整合,意味着最好能有Schema(Mapping),但是HBase 有没有Schema取决于使用者。所以通常SparkOnHBase的库都要求你定义一个Mapping(Schema),比如hortonworks的 SHC( https://github.com/hortonworks-spark/shc ) 就要求你定义一个如下的配置:

{

"rowkey":"key",

"table":{"namespace":"default", "name":"pi_user_log", "tableCoder":"PrimitiveType"},

"columns":{"col0":{"cf":"rowkey", "col":"key", "type":"string"},

"col1":{"cf":&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值