twitter storm 运行 WordCountTopology 时出现Cannot run program "python" 异常

cdmamata 2013-01-14 12:58:05
RT,我用 storm jar StormStarter.jar storm.starter.WordCountTopology wordCount 命令运行 storm-starter 自带的 WordCountTopology 时,在storm ui 中出现如下异常。

java.lang.RuntimeException: Error when launching multilang subprocess

at backtype.storm.task.ShellBolt.prepare(ShellBolt.java:82)
at backtype.storm.daemon.executor$fn__4036.invoke(executor.clj:531)
at clojure.lang.MultiFn.invoke(MultiFn.java:167)
at backtype.storm.daemon.executor$mk_executor$fn__3915.invoke(executor.clj:249)
at backtype.storm.daemon.executor$mk_executor.invoke(executor.clj:248)
at backtype.storm.daemon.worker$fn__4324$exec_fn__1207__auto____4325$iter__4330__4334$fn__4335.invoke(worker.clj:353)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.Cons.next(Cons.java:39)
at clojure.lang.RT.next(RT.java:587)
at clojure.core$next.invoke(core.clj:64)
at clojure.core$dorun.invoke(core.clj:2726)
at clojure.core$doall.invoke(core.clj:2741)
at backtype.storm.daemon.worker$fn__4324$exec_fn__1207__auto____4325.invoke(worker.clj:353)
at clojure.lang.AFn.applyToHelper(AFn.java:185)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:601)
at backtype.storm.daemon.worker$fn__4324$mk_worker__4380.doInvoke(worker.clj:322)
at clojure.lang.RestFn.invoke(RestFn.java:512)
at backtype.storm.daemon.worker$_main.invoke(worker.clj:432)
at clojure.lang.AFn.applyToHelper(AFn.java:172)
at clojure.lang.AFn.applyTo(AFn.java:151)
at backtype.storm.daemon.worker.main(Unknown Source)
Caused by: java.io.IOException: Cannot run program "python" (in directory "/home/ubuntu/usr/storm/tmp/supervisor/stormdist/MonStart-1-1358131425/resources"): java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at backtype.storm.utils.ShellProcess.launch(ShellProcess.java:31)
at backtype.storm.task.ShellBolt.prepare(ShellBolt.java:79)
... 22 more
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.(UNIXProcess.java:148)
at java.lang.ProcessImpl.start(ProcessImpl.java:65)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
... 24 more

大神们,该怎么解决啊,谢谢了。

...全文
1625 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzjqzjqzj 2015-03-28
  • 打赏
  • 举报
回复
本地模式问题 如果创建java工程后(不是maven工程),直接用eclipse run as java application的话,报错,报java.lang.RuntimeException: Error when launching multilang subprocess 和Caused by: java.io.IOException: Cannot run program "python" (in directory "C:\Users\QZJ\AppData\Local\Temp\3c2a52cd-2e02-491f-b4a7-240bd4ac7e17\supervisor\stormdist\word-count-1-1427536552\resources"): CreateProcess error=2, ????????? 是什么原因? 如果不通过run as 运行,而是把工程导出成jar包,然后在windows cmd控制台运行 storm jar starter.jar storm.starter.WordCountTopology则能正常运行,控制台输出调试信息,这是什么原因? 如果创建的是maven工程,则通过run as 直接在eclipse运行没问题(好像是这样,不是记得特别清楚了,之前我试过几次)
qzjqzjqzj 2015-03-27
  • 打赏
  • 举报
回复
楼主,请教一下 解决办法是,将storm-start 整个项目导入 Eclipse中,然后添加相应jar包,没有错误后,打包,运行即可。 指的是什么意思? 你的工程是用Maven创建的还是说直接创建的java_project然后把storm-stater下的src/jvm的所有代码,src/multilang下的所有代码,src/test下的所有代码copy到创建的java_project中? 我通过storm-starter的pom.xml用maven创建了storm-stater,项目里有multilang文件夹和其下的子文件,但是还是报和你一样的错误,是什么原因,是因为pom.xml在打包的时候没有把multilang一起打成jar吗?
fzhmoive 2013-10-09
  • 打赏
  • 举报
回复 1
只能通过“storm jar StormStarter.jar storm.starter.WordCountTopology wordCount”这种命令方式运行吗?在eclipse中如何运行调试呢?
So-Far-So-Good 2013-02-01
  • 打赏
  • 举报
回复
引用 5 楼 cdmamata 的回复:
引用 4 楼 cc4998170 的回复:我也遇到一样的问题 问题解决了,是因为我打jar包时没有导入 storm-start 里面的的resources 文件夹。 解决办法是,将storm-start 整个项目导入 Eclipse中,然后添加相应jar包,没有错误后,打包,运行即可。 结贴
嗯,是因为没导入资源文件
dalianwang74 2013-01-28
  • 打赏
  • 举报
回复
myeclipse不行,用eclipse成功了 。 有可能是加载文件路径名太长?
dalianwang74 2013-01-28
  • 打赏
  • 举报
回复
我去 我发现是你一个人在自言自语哈
dalianwang74 2013-01-28
  • 打赏
  • 举报
回复
在linux运行正常,在myeclipse运行就报此错 擦 python各种配置均射过了 无语了 擦
cdmamata 2013-01-16
  • 打赏
  • 举报
回复
引用 4 楼 cc4998170 的回复:
我也遇到一样的问题
问题解决了,是因为我打jar包时没有导入 storm-start 里面的的resources 文件夹。 解决办法是,将storm-start 整个项目导入 Eclipse中,然后添加相应jar包,没有错误后,打包,运行即可。 结贴
So-Far-So-Good 2013-01-14
  • 打赏
  • 举报
回复
我也遇到一样的问题
cdmamata 2013-01-14
  • 打赏
  • 举报
回复
上面是在myEclipse下运行本地模式的时候,报的错,也是提示 Caused by: java.io.IOException: Cannot run program "python" (in directory "/tmp/c781011c-213a-4809-a798-1ed632d35e39/supervisor/stormdist/word-count-1-1358152275/resources"): java.io.IOException: error=2, No such file or directory 这个错误
cdmamata 2013-01-14
  • 打赏
  • 举报
回复
严重: java.lang.RuntimeException: Error when launching multilang subprocess at backtype.storm.task.ShellBolt.prepare(ShellBolt.java:82) at backtype.storm.daemon.executor$fn__4036.invoke(executor.clj:531) at clojure.lang.MultiFn.invoke(MultiFn.java:167) at backtype.storm.daemon.executor$mk_executor$fn__3915.invoke(executor.clj:249) at backtype.storm.daemon.executor$mk_executor.invoke(executor.clj:248) at backtype.storm.daemon.worker$fn__4324$exec_fn__1207__auto____4325$iter__4330__4334$fn__4335.invoke(worker.clj:353) at clojure.lang.LazySeq.sval(LazySeq.java:42) at clojure.lang.LazySeq.seq(LazySeq.java:60) at clojure.lang.Cons.next(Cons.java:39) at clojure.lang.RT.next(RT.java:587) at clojure.core$next.invoke(core.clj:64) at clojure.core$dorun.invoke(core.clj:2726) at clojure.core$doall.invoke(core.clj:2741) at backtype.storm.daemon.worker$fn__4324$exec_fn__1207__auto____4325.invoke(worker.clj:353) at clojure.lang.AFn.applyToHelper(AFn.java:185) at clojure.lang.AFn.applyTo(AFn.java:151) at clojure.core$apply.invoke(core.clj:601) at backtype.storm.daemon.worker$fn__4324$mk_worker__4380.doInvoke(worker.clj:322) at clojure.lang.RestFn.invoke(RestFn.java:512) at backtype.storm.daemon.supervisor$fn__4783.invoke(supervisor.clj:457) at clojure.lang.MultiFn.invoke(MultiFn.java:177) at backtype.storm.daemon.supervisor$sync_processes$iter__4660__4664$fn__4665.invoke(supervisor.clj:247) at clojure.lang.LazySeq.sval(LazySeq.java:42) at clojure.lang.LazySeq.seq(LazySeq.java:60) at clojure.lang.RT.seq(RT.java:473) at clojure.core$seq.invoke(core.clj:133) at clojure.core$dorun.invoke(core.clj:2725) at clojure.core$doall.invoke(core.clj:2741) at backtype.storm.daemon.supervisor$sync_processes.invoke(supervisor.clj:235) at clojure.lang.AFn.applyToHelper(AFn.java:161) at clojure.lang.AFn.applyTo(AFn.java:151) at clojure.core$apply.invoke(core.clj:603) at clojure.core$partial$fn__4070.doInvoke(core.clj:2343) at clojure.lang.RestFn.invoke(RestFn.java:397) at backtype.storm.event$event_manager$fn__2484.invoke(event.clj:24) at clojure.lang.AFn.run(AFn.java:24) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.IOException: Cannot run program "python" (in directory "/tmp/c781011c-213a-4809-a798-1ed632d35e39/supervisor/stormdist/word-count-1-1358152275/resources"): java.io.IOException: error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) at backtype.storm.utils.ShellProcess.launch(ShellProcess.java:31) at backtype.storm.task.ShellBolt.prepare(ShellBolt.java:79) ... 36 more Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.<init>(UNIXProcess.java:148) at java.lang.ProcessImpl.start(ProcessImpl.java:65) at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) ... 38 more 2013-1-14 16:31:17 clojure.tools.logging$eval1$fn__7 invoke 信息: Halting process: ("Worker died")
cdmamata 2013-01-14
  • 打赏
  • 举报
回复
我的storm.local.dir为 "/home/ubuntu/usr/storm/tmp",错误提示中的 /home/ubuntu/usr/storm/tmp/supervisor/stormdist/MonStart-1-1358131425/resources 路径没有resources 文件/文件夹,那么,这个 resources 文件/文件夹 又有什么作用

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧