7 回答
TA贡献1862条经验 获得超7个赞
这是问题解决后做的总结,希望能帮到初学者,同时感谢回答我问题的朋友们,谢谢大家。
自己做的总结,可能会有疏漏,望海涵。
主要开发工具及安装包:
Windows中:
IDEA 2018.3.3 x64位
Maven apache-maven-3.6.0
Linux中:
ubuntu-18.04.1.0-live-server-amd64
apache-storm-1.2.2
1.创建maven项目:
com.zheng是包名
mavenTest2是创建的项目名(eclipse和IDEA有不同,自行百度)
Version不用修改
maven项目创建成功。
===========项目代码编写过程(自行根据需求编写)。。。========
2.打包maven项目
双击install
最终在项目的target目录下找到打好的jar包,打包完成
3.将打好的jar包放到linux服务器中,在storm安装目录下执行命令:
./bin/storm jar /usr/local/test3/mavenTest2-1.0-SNAPSHOT.jar com.zheng.SayHelloTopology SayHello
其中/usr/local/test3/mavenTest2-1.0-SNAPSHOT.jar是执行的jar包具体位置;com.zheng.SayHelloTopology是主类入口;SayHello是拓扑名,显示在UI界面上。
执行jar包的具体位置,storm可以默认识别,这个问题我还没搞清楚,应该和配置文件有关,再琢磨琢磨。
4.编辑mavenTest2项目中pom.xml配置文件:
要把maven项目打包放置到linux中用storm执行,箭头所指依赖包配置版本号<version>1.2.2</version>就要和linux中storm版本一致。
TA贡献1906条经验 获得超10个赞
建议你仅将自己的class打包,将外部库依赖拷贝到目标主机。
这样做的好处是:生成的文件体积小,以后有更新或变动,只需要重新拷贝这个小文件,无需拷贝实质不变化的外部库。
至于运行的问题,jvm搜索class时是按照指定的路径搜索的,只要外部库的路径在其搜索目标中即可。参考指令
$ java -cp /your_path/xxx.jar [entry_class]
添加回答
举报