风暴监督员在处理事件时退出

时间:2015-06-12 09:55:30

标签: java apache-storm

当我通过发出bin / storm supervisor启动主管时,它会退出。日志是

void submit(Object sender, EventArgs e) {
    long value = (long)txt1.text;
    DateTime pwdLastSet = (DateTime.FromFileTimeUtc(value)).ToLocalTime();
    lbl1.Text = "Converted date: " + pwdLastSet;
}

我的storm.yaml的基本配置为

2015-06-12T02:28:27.811-0700 b.s.event [ERROR] Error when processing event
java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.moveDirectory(Ljava/io/File;Ljava/io/File;)V
at backtype.storm.daemon.supervisor$fn__7480.invoke(supervisor.clj:489) ~[storm-core-0.9.5.jar:0.9.5]
at clojure.lang.MultiFn.invoke(MultiFn.java:241) ~[clojure-1.5.1.jar:na]
at backtype.storm.daemon.supervisor$mk_synchronize_supervisor$this__7400.invoke(supervisor.clj:374) ~[storm-core-0.9.5.jar:0.9.5]
at backtype.storm.event$event_manager$fn__2625.invoke(event.clj:40) ~[storm-core-0.9.5.jar:0.9.5]
at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
2015-06-12T02:28:27.834-0700 b.s.util [ERROR] Halting process: ("Error when processing an event")
java.lang.RuntimeException: ("Error when processing an event")
at backtype.storm.util$exit_process_BANG_.doInvoke(util.clj:325) [storm-core-0.9.5.jar:0.9.5]
at clojure.lang.RestFn.invoke(RestFn.java:423) [clojure-1.5.1.jar:na]
at backtype.storm.event$event_manager$fn__2625.invoke(event.clj:48) [storm-core-0.9.5.jar:0.9.5]
at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]

直到喷口收到消息才开始。

2 个答案:

答案 0 :(得分:2)

看起来Storm的类路径不包括Apache commons-io v2.4或错误的版本。

请检查

  

bin / storm classpath

确认classpath包含commons-io,其版本为2.4。如果它包含不同的版本,则需要手动检查(通过javadoc)它包含

  

public static void moveDirectory(File srcDir,File destDir)抛出IOException

您可以参考https://github.com/apache/storm/blob/v0.9.5/bin/storm#L101-L105来了解类路径。

答案 1 :(得分:0)

似乎错过了 org.apache.commons.io.FileUtils 课程。您应该创建一个包含代码和代码的所有依赖项的jar(Storm除外 - Storm jar将添加到worker节点的类路径中)。请详细了解如何通过链接https://storm.apache.org/documentation/Running-topologies-on-a-production-cluster.html

在远程模式(群集中)中运行拓扑