问题导读
1.版本下载后,要注意修改m2-pom.xml 文件,为什么?
2.出现错误Failure to transfer org.twitter4j:twitter4j-core:2.2.6-SNAPSHOT,该如何解决?
3.storm-0.9.0-wip7.jar包的作用是什么?
4.如何提交topology
一,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版本必须一致。否则可能报错,编译不成功。(笔者就是因为没有修改这个版本号,结果在开发的时候各种报错,浪费很多时间,泪。。。)
<dependency>
<groupId>storm</groupId>
<artifactId>storm</artifactId>
<version>0.9.0</version>
<!-- keep storm out of the jar-with-dependencies -->
<scope>provided</scope> 复制代码
然后
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代码了。
我看到网上很多说还需要给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 复制代码