storm调研
经过对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://blog.linezing.com/2013/01/storm%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B-%E7%AC%AC%E4%BA%8C%E7%AB%A0-%E6%9E%84%E5%BB%BAtopology
消息的可靠处理
http://macrochen.iteye.com/blog/1414568
一致性事务
http://blog.linezing.com/2013/01/storm%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B-%E7%AC%AC%E4%BA%94%E7%AB%A0-%E4%B8%80%E8%87%B4%E6%80%A7%E4%BA%8B%E5%8A%A1
?
官方样例
测试环境
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)
?
http://mopishv1.wd.zw.ss.nop.vm.sogou-op.org:8083/