博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GitHub项目Storm-HBase介绍
阅读量:6716 次
发布时间:2019-06-25

本文共 1089 字,大约阅读时间需要 3 分钟。

最近完成了一个GitHub项目:,该项目是和的结合,它使用HBase cluster作为Storm的Spout数据源,目前只是初步实现,后续会进一步完善。

根据时间戳范围[start_timestamp, stop_timestamp],持续不间断地从HBase cluster读取流数据:

  • 如果start_timestamp = 0,HBaseSpout将默认从3分钟前的数据开始读取并发送到Storm cluster;否则从用户指定的start_timestamp开始读取数据。
  • 如果stop_timestamp = 0, HBaseSpout将默认读取到当前时间的数据,并随着时间流动持续地读取新的数据并发送到Storm cluster;否则读取到用户指定的stop_timestamp后停止读取。

以上有关[start_timestamp, stop_timestamp]的设计,是为了适应不同的运行模式:

  • 最典型情况下,start_timestamp = 0 and stop_timestamp = 0,则从3分钟前开始读取发送数据,然后会同步扫描HBase cluster中的新数据,并发送给Storm cluster,适合用户实时计算的情景。
  • 出现问题的情况下,例如Storm cluster重启,计算任务状态被丢失,此时可能需要能够Spout进行数据的回传(data rewind),通过指定[start_timestamp, stop_timestamp]可以满足这一需求。

Storm-HBase力求尽可能做到通用化,因此提取了Storm和HBase的配置信息。有关Storm-HBase的配置选项,可以在GitHub工程的src/main/resources/storm.properties以及src/main/resources/hbase.properties文件中找到。如果你的HBase表的Schema结构与上述类似,那么只需要进行简单的配置即可使用Storm-HBase。

目前的HBaseSpout实现基于以下假设:

  • HBase表的rowkey形式为[shardingkey, timestamp, ...];
  • shardingkey占据第1个byte,表示表中数据的分区数,一般是100以内,所以这里使用了short类型存储;
  • timestamp占据第2~5个byte,表示数据中的时间戳信息,这里timestamp是秒级的UNIX时间戳值,使用了int型存储。

更多关于Storm-HBase的介绍及进展,请参加项目的GitHub链接:

转载地址:http://oaxlo.baihongyu.com/

你可能感兴趣的文章
关于在微信支付接口和支付宝接口中使用到的辅助函数
查看>>
学习网页编程(一)
查看>>
Windows Server 2008 安装好之后的简单配置
查看>>
MyCat原理及分布式分库分表
查看>>
redis基础_redis介绍
查看>>
WPF中。。DataGrid 实现时间控件和下拉框控件
查看>>
几种常用排序
查看>>
oracle win7下 卸载
查看>>
JS两个相同的字符串被判断为不相等问题
查看>>
Python中的一些函数
查看>>
[leetcode-513-Find Bottom Left Tree Value]
查看>>
Java开发就业形势和面试技巧
查看>>
Matplotlib参数表
查看>>
MySQL基础之 外键参照讲解
查看>>
jmeter操作数据库
查看>>
js高级教程 第六章-面对对象的程序设计(四)
查看>>
对Java的常用对象(POJO、DTO、PO、BO、VO、DAO)详细解释及应用场景
查看>>
Java基础学习总结(12)——一哈希编码HashCode
查看>>
英语实用句型收集
查看>>
WAMP下定义wordpress固定连接出现文章页面404
查看>>