经过对storm的初步了解,storm 主要运用于实时计算,并且可以自定义数据流的逻辑拓扑结构。下面是一些说明。storm是否符合您的应用场景?如果还有其他需求,也请提出来。
在使用方式上简单的与hadoop比较:
hadoop数据源一般是离线的、静态的 storm数据源一般是实时的,可与kafka结合
hadoop数据处理完成,自动结束任务 需要手动关闭处理
hadoop拓扑结构比较固定 storm可以自定义数据处理拓扑结构
不需要关心消息可靠性 需要关心消息可靠性
使用场景举例:
1 实时计算top n
http://www.cnblogs.com/panfeng412/archive/2012/06/16/storm-common-patterns-of-streaming-top-n.html
2 分布式RPC
http://www.cnblogs.com/panfeng412/archive/2012/07/02/storm-common-patterns-of-distributed-rpc.html
使用storm相关资料:
构建topology(看完后可了解官方样例)
消息的可靠处理
http://macrochen.iteye.com/blog/1414568
一致性事务
官方样例
测试环境
mopishv1.wd.zw.ss.nop.vm.sogou-op.org
密码 870827v0
http://github.com/nathanmarz/storm-starter
由于http://twitter4j.org/maven2被墙,因此推荐修改pom文件中的依赖关系:
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-stream</artifactId>
<version>2.2.6</version>
</dependency>
启动官方word count
storm jar storm-starter-0.0.1-SNAPSHOT.jar storm.starter.WordCountTopology WordCount_1 (不加最后的参数则以本地方式启动)
storm ui(相当于hadoop中的jobtracker.jsp)