知识点
相关文章
更多最近更新
更多GitHub项目Storm-HBase介绍
2019-03-02 23:44|来源: 网路
最近完成了一个GitHub项目:Storm-HBase,该项目是Twitter Storm和Apache HBase的结合,它使用HBase cluster作为Storm的Spout数据源,目前只是初步实现,后续会进一步完善。
HBaseSpout根据时间戳范围[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链接:https://github.com/ypf412/storm-hbase
转自:http://www.cnblogs.com/panfeng412/archive/2012/08/06/storm-use-hbase-as-spout
相关问答
更多-
1.jpg 理论上是的,这些需要做一些特殊的处理。他们的安装过程都是差不多的。如果不熟悉,则需要按照官网的配置,这样不容易出问题。他们的之间的对应关系,可以参考hadoop、hbase、hive版本对应关系
-
两个不同层面的问题,没有什么不可以的。主要是要做好资源竞争方面的管理。一般Hbase都是实时查询多一点,所以应该设以更大的优先级。
-
斯伯丁small forward和storm哪个好(详细介绍优缺点及性价比)[2022-07-17]
storm和SF只是篮球的名字,斯伯丁有专门的型号的,在球身上,你可以提去京东拿型号进行对比,有产品的信息。 -
在GitHub上创建的项目必须是开源的吗?[2022-08-23]
不一定,如果你在创建项目时选择private repository(创建private repository大部分情况需要付费),代码是不会公开的,既然代码不公开,你想开不开源都是你自己的事情咯。 如果你选择public repository,应该是默认该项目代码开源,不过你可以选择限制条件不同的开源许可协议。 -
Storm-HBase Trident - 同时查询多个列(Storm-HBase Trident - Query Multiple columns simultaneously)[2022-09-04]
我自己解决了这个问题,在这里发帖给后人: 我遇到困难的原因是因为我正在构建WordCountValueMapper而没有真正理解它是如何被使用的。 深入挖掘Results类有所帮助。 这是我现在如何实现它: public static class MyValueMapper implements HBaseValueMapper { @Override public ListtoValues(ITuple tuple, Result result) throws Exception ... -
Artifactory为您提供远程存储库功能,您也可以使用它来代理各种VCS服务,虽然我没有看到只在Artifactory中存储git repo的克隆 - VCS远程主要用于直接包含源的情况您不需要在自己的代码中影响的代码(即,您不能git push更改git push回到Artifactory中 - 它们不会保留在上游git仓库中)。 如果您的目标是让您的CI作业克隆某个分支,运行测试,构建它,然后将构建工件部署回工件,我建议配置您的作业来克隆git repo(使用git而不是Artifactory),然 ...
-
最后使用插件添加了lib文件夹中pom.xml的所有jar文件 -
org.apache.maven.plugins maven-dependency-plugin 2.10 经过一些分析,我们继续使用NGHbas索引器实现了设计。 一个论点是我们无法保护hbase和solr中的相同数据,因为我们无法大规模处理事务。 我们也有类似的流数据设计。 所以使用了设置 After some analysis, we went ahead and implemented the design with NGHbas indexer. One argument is that we cannot gaurantee same data in hbase and solr as we cann ...Maven正试图从https repo“ https://clojars.org/repo/ ”下载jar,但java没有客户端证书。 按照以下步骤导入客户端证书 第1步:下载客户端证书 在浏览器中打开https://clojars.org/repo/ URL(即firefox) 单击URL栏右侧的锁定图标 显示服务器URL,单击以获取右箭头,然后单击“更多信息” 弹出窗口以查看服务器的证书。 单击“查看证书”,在“详细信息”表中导出到文件CERT_FILE_NAME.crt 步骤2:将客户端证书导入mav ...好的,所以我不知道为什么会出现最初的问题,但是我通过大量简化扫描仪来修复它: Scan scan = new Scan(startRowString.getBytes(), endRowString.getBytes()); scan.addFamily("f1".getBytes()); ResultScanner scanner = table.getScanner(scan); for (Result r : scanner) {...} 基于此,问题似乎在HBase方面而不 ...