我正在本地群集上运行风暴拓扑,它可以正常运行大约一个小时,然后在抛出此错误后停止。
backtype.storm.multilang.NoOutputException: Pipe to subprocess seems to be broken! No output read.
整个错误跟踪是:
ERROR b.s.t.ShellBolt - Halting process: ShellBolt died. Command: [Rscript, stormtest_with_OR1.R], ProcessInfo pid:32381, name:RBolt exitCode:-1, errorString:
java.lang.RuntimeException: backtype.storm.multilang.NoOutputException: Pipe to subprocess seems to be broken! No output read.
Serializer Exception:
at backtype.storm.utils.ShellProcess.readShellMsg(ShellProcess.java:101) ~[storm-core-0.10.0.jar:0.10.0]
at backtype.storm.task.ShellBolt$BoltReaderRunnable.run(ShellBolt.java:321) [storm-core-0.10.0.jar:0.10.0]
at java.lang.Thread.run(Thread.java:745) [?:1.7.0_67]
2016-04-05 11:07:04,665 FATAL Unable to register shutdown hook because JVM is shutting down.
51144 [Thread-14-RBolt] ERROR b.s.util - Halting process: ("Worker died")
java.lang.RuntimeException: ("Worker died")
at backtype.storm.util$exit_process_BANG_.doInvoke(util.clj:336) [storm-core-0.10.0.jar:0.10.0]
at clojure.lang.RestFn.invoke(RestFn.java:423) [clojure-1.6.0.jar:?]
at backtype.storm.daemon.worker$fn__7184$fn__7185.invoke(worker.clj:532) [storm-core-0.10.0.jar:0.10.0]
at backtype.storm.daemon.executor$mk_executor_data$fn__5523$fn__5524.invoke(executor.clj:261) [storm-core-0.10.0.jar:0.10.0]
at backtype.storm.util$async_loop$fn__545.invoke(util.clj:489) [storm-core-0.10.0.jar:0.10.0]
at clojure.lang.AFn.run(AFn.java:22) [clojure-1.6.0.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.7.0_67]
Bolt是用R语言编写的。在我的拓扑代码中,cluster.shutdown()被注释为许多threads与此错误相关的错误的原因。