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)

 

猜你喜欢

转载自litongbupt.iteye.com/blog/1958445