开发环境:storm trident 2.0.0 开发版本 + springboot+ maven 等
服务器:host1(存放项目 运行jar) host2(storm集群主节点) host3(storm集群从节点) host4(storm集群从节点)
问题:将项目maven install 打成jar 放到 host1 运行 ——启动任务——将项目打成storm.jar提交到storm集群——主节点分配——从节点做事——例如分配到host3从节点——host会分配到storm的worker去执行——查看lib-work日志——报错 找不到storm.jar中的类或者jar包错误等。
解决方法一:我使用最笨的方法,我将报错信息中所报的所有找不到的jar包全放入lib-work 目录下也包括storm.jar,但是这个storm.jar是由我本地eclipse export导出的jar,我将放入lib-work中。完成以上操作再次启动任务,运行不报错。
方法一的问题:每一次做出修改我都需要部署2个地方,繁杂,不太适合后期管理。
求助:如何能够让代码生成storm.jar 运行时候不报错(目前的猜想,在maven+springboot 项目 maven install的jar包中运行storm.jar 导致 storm没办法去读取到信息)
问题在于:
远程提交storm.jar的时候首先是发布到主节点,主节点分发给集群的从节点,再配置的data目录下面会有对应提交过来的jar包,但是这个包的 目录结构不是我想要的,我想要那种eclipse export直接导出的那种目录结构的jar包,目前是springboot的打包方式。
有没有大神有什么办法能解决这个问题,我头都想大了,没想到解决办法。