一,Linux (Ubuntu)环境

笔者是在ubuntu 12.04系统下完成的,

前提条件是(1)一台装有storm的集群;(2)storm-starter源码,下载地址: 


git clone git@github.com:nathanmarz/storm-starter.git

然后需要maven或者lein 来编译,笔者尝试用lein编译多次,总是不成功,各种报错。

用maven倒是一次成功,但是感觉maven的体积有点大,安装包有150M 然后依赖包还有几百兆。



sudo apt-get install maven

然后从终端进入到 storm-starter的文件,里面有个m2-pom.xml 文件,修改storm版本号,和你安装的storm版本必须一致。否则可能报错,编译不成功。(笔者就是因为没有修改这个版本号,结果在开发的时候各种报错,浪费很多时间,泪。。。)




storm

storm

0.9.0

provided

然后 

  mvn -f m2-pom.xml package


在第一次编译的过程中,可能会提示:  Failure to transfer org.twitter4j:twitter4j-core:2.2.6-SNAPSHOT................ 等错误,没关系,解决办法在这里:缺少twitter4j依赖包的解决办法


编译完成后,就会在storm-start里产生一个文件夹 target,里面有一个storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar

就是可以提交到storm集群上的jar包啦。


通过这个例子你可以了解到storm的开发过程,然后用vi 编辑器 编辑你自己的程序java源码,用maven编译打包就可以执行了。当然你还可以用Linux 版的eclipse 来开发会方便很多。



二,Windows环境


 这时候当然需要eclipsele 了,在eclipse 里新建一个java project然后,config building path 将storm安装包里的 storm-0.9.0-wip7.jar添加到编译环境,然后就可以开始编写 java代码了。

storm的开发环境部署配置教程


我看到网上很多说还需要给eclipse安装maven插件,下载maven依赖,其实不需要。


等你把代码写好,直接在项目上右键 -> export  jar包,然后通过 SecureFX.exe 将刚才导出的jar包上传到storm 的nimbus节点。


然后他通过以下命令就可以 向storm 集群提交 topology:

storm jar realODMatrix-0.0.1-SNAPSHOT.jar  main.java.realODMatrix.realODMatrixTopology realOD 

 

整个开发流程差不多就是这样。


一个基于storm开发了深圳市实时交通路况系统 样例,源码已经在github上开源:

https://github.com/whughchen/RealTimeTraffic

欢迎关注 并 fork 加以改进~



相关博文:

storm实战:深圳市实时路况分析和实时路径推荐系统


storm单机版和集群版安装配置过程 


使用Storm实现实时大数据分析实例


缺少twitter4j依赖包的解决办法


基于storm的实时GPS数据客流特征分析系统 源码分析之(一)


基于storm的实时GPS数据客流特征分析系统 源码分析之(二)