我是Apache风暴的新手。我在intellij中用java创建了一个storm项目,它成功地创建了一个本地集群,并将拓扑提交给它并在本地运行。我想在amazonec2上运行这个storm项目。我跟踪了链接https://github.com/nathanmarz/storm-deploy/wiki. 链接成功启动了2个supervisor示例、1个zookeeper示例和1个nimbus示例。现在我想在服务器上运行我的拓扑。这是我在storm的第一个项目,请回答我的以下问题:
我是否需要启动另一个示例来运行storm项目?
我是否必须创建一个stormjava项目的jar,并将其scp到服务器上才能像他们在文档中提到的那样运行它 storm jar path/to/allmycode.jar org.me.MyTopology arg1 arg2 arg3
?
3条答案
按热度按时间bn31dyow1#
首先,您必须在集群模式下编译拓扑,然后将其交付给nimbus(不管如何,通过scp或其他方式,我已经使用了winscp),然后使用bin/storm jar path/to/jar mainclass.java args命令运行它,所以,1)回答第一个问题。不,你必须在nimbus上运行你的拓扑,而不是另一台机器。2) 回答第二个问题。是的,您必须将jar交付给nimbus(不管如何),并按照说明(文档)中的说明运行它
vjhs03f72#
回答你的第二个问题。到目前为止,我就是这样解决这个问题的。将jar手动scp到amazon示例并通过命令行客户端上传。
创建restapi以这种方式上传似乎存在一个开放的问题。不过,我不太清楚这个问题的现状。
这里是另一个处理远程提交的stackoverflow问题,但我没有尝试使用这种技术。
jw5wzhpr3#
是的,你需要创建一个
jar
包含喷口/螺栓类的文件(以及包含main
方法,如果您想通过bin/storm jar
命令)。手动上载
jar
文件不是必需的。如果您从ide或via提交bin/storm jar
命令,jar将自动上载。