在apachestorm中运行脚本

plicqrtu  于 2021-06-21  发布在  Storm
关注(0)|答案(2)|浏览(386)

有没有一种方法可以简单地在apachestorm中运行python脚本?
我试图找出如何使用风暴运行脚本,但有麻烦。似乎我需要创建一个java程序来调用脚本并将其用作一个螺栓,但我只想向storm发送一个非常基本的python脚本,看看是否有可能。
我读到下面的命令有助于将拓扑发送到storm,但是我在理解语法以及是否允许我将任何python代码发送到storm或者它是否需要特定的语法方面遇到了困难。
有人能澄清我是否可以提交任何python脚本给storm吗?如果可以,下面的代码行是什么意思。

storm shell resources/ python topology.py arg1 arg2

当我尝试使用上面的代码提交一个基本的python脚本时,我得到以下输出。

956  [main] INFO  backtype.storm.StormSubmitter - Uploading topology jar stormshell8691441.jar to assigned location: /home/scix3/apache/storm/data/nimbus/inbox/stormjar-ae0739f9-7c93-4f00-a02b-c4eceba3b005.jar
966  [main] INFO  backtype.storm.StormSubmitter - Successfully uploaded topology jar to assigned location: /home/scix3/apache/storm/data/nimbus/inbox/stormjar-ae0739f9-7c93-4f00-a02b-c4eceba3b005.jar
Exception in thread "main" java.io.IOException: Cannot run program "simple.py" (in directory "."): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
at java.lang.Runtime.exec(Runtime.java:617)
at org.apache.commons.exec.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
at org.apache.commons.exec.DefaultExecutor.launch(DefaultExecutor.java:254)
at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:319)
at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:160)
at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:147)
at backtype.storm.util$exec_command_BANG_.invoke(util.clj:386)
at backtype.storm.command.shell_submission$_main.doInvoke(shell_submission.clj:29)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at backtype.storm.command.shell_submission.main(Unknown Source)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:186)
at java.lang.ProcessImpl.start(ProcessImpl.java:130)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
... 10 more

我使用的确切命令(可能不正确)是 storm shell resources/ simple.py simple.py只是一个 print 'Hello, world 脚本。
我使用的是storm版本0.9.4

whlutmcx

whlutmcx1#

是的,你可以在Storm中运行巨蟒。事实上,您可以在storm集群上运行任何语言的代码,这只是实现api的问题。
然而,有一些工作的要求,据我所知,所说的要求没有在风暴文件中阐明。开始运行的最快方法是从storm源中获取splitsentence.py示例并使用它运行。

1bqhqjot

1bqhqjot2#

试试幽门(https://github.com/yelp/pyleus)或streamparse(https://github.com/parsely/streamparse),我将推荐使用pyleus,因为它很简单。

相关问题