当前位置: 首页 > 流计算 > Storm 异常汇总 —- supervisor自动停止启动等问题

Storm 异常汇总 —- supervisor自动停止启动等问题

Storm 使用过程中的异常信息整理

在使用storm的过程中,出现了如下3种诡异的问题。也从storm的buglist中看到过,很多都要切换到0.9.3才有解决的方式。我们这里通过其他方式进行了处理。

supervisor启动后,立刻重启,重复出现

 Java |  复制 |? 
01
02
2015-02-06 10:53:04 b.s.event [ERROR] Error when processing event
03
java.io.IOException: . doesn't exist.
04
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:157) ~[commons-exec-1.1.jar:1.1]
05
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:147) ~[commons-exec-1.1.jar:1.1]
06
        at backtype.storm.util$exec_command_BANG_.invoke(util.clj:378) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
07
        at backtype.storm.util$ensure_process_killed_BANG_.invoke(util.clj:394) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
08
        at backtype.storm.daemon.supervisor$shutdown_worker.invoke(supervisor.clj:175) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
09
        at backtype.storm.daemon.supervisor$sync_processes.invoke(supervisor.clj:240) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
10
        at clojure.lang.AFn.applyToHelper(AFn.java:161) [clojure-1.5.1.jar:na]
11
        at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na]
12
        at clojure.core$apply.invoke(core.clj:619) ~[clojure-1.5.1.jar:na]
13
        at clojure.core$partial$fn__4190.doInvoke(core.clj:2396) ~[clojure-1.5.1.jar:na]
14
        at clojure.lang.RestFn.invoke(RestFn.java:397) ~[clojure-1.5.1.jar:na]
15
        at backtype.storm.event$event_manager$fn__2378.invoke(event.clj:39) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
16
        at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
17
        at java.lang.Thread.run(Thread.java:722) [na:1.7.0_09-icedtea]
18
2015-02-06 10:53:04 b.s.util [INFO] Halting process: ("Error when processing an event")
19

处理方式:
可能是应为上次的topology停止后,没有将storm.local.dir对应的目录下的workers目录和supervisors目录清除。解决方式,在重启supervisor的时候,增加这两个目录的清除操作。

worker重复启动,停止

 Java |  复制 |? 
01
02
2015-02-05 17:02:43 b.s.event [ERROR] Error when processing event
03
java.lang.OutOfMemoryError: unable to create new native thread
04
        at java.lang.Thread.start0(Native Method) [na:1.7.0_67]
05
        at java.lang.Thread.start(Thread.java:714) [na:1.7.0_67]
06
        at org.apache.commons.exec.PumpStreamHandler.start(PumpStreamHandler.java:153) ~[commons-exec-1.1.jar:1.1]
07
        at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:330) ~[commons-exec-1.1.jar:1.1]
08
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:160) ~[commons-exec-1.1.jar:1.1]
09
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:147) ~[commons-exec-1.1.jar:1.1]
10
        at backtype.storm.util$exec_command_BANG_.invoke(util.clj:378) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
11
        at backtype.storm.util$ensure_process_killed_BANG_.invoke(util.clj:394) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
12
        at backtype.storm.daemon.supervisor$shutdown_worker.invoke(supervisor.clj:175) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
13
        at backtype.storm.daemon.supervisor$sync_processes.invoke(supervisor.clj:240) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
14
        at clojure.lang.AFn.applyToHelper(AFn.java:161) [clojure-1.5.1.jar:na]
15
        at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na]
16
        at clojure.core$apply.invoke(core.clj:619) ~[clojure-1.5.1.jar:na]
17
        at clojure.core$partial$fn__4190.doInvoke(core.clj:2396) ~[clojure-1.5.1.jar:na]
18
        at clojure.lang.RestFn.invoke(RestFn.java:397) ~[clojure-1.5.1.jar:na]
19
        at backtype.storm.event$event_manager$fn__2378.invoke(event.clj:39) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
20
        at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
21
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
22
2015-02-05 17:02:43 b.s.util [INFO] Halting process: ("Error when processing an event")
23

出现这种类型的问题,有可能是由3种原因造成的:
1. 无法创建用户线程或进程。
可以通过pstree -p|wc -l 查看当前的user process数量。与ulimit -an 中对应的max user process进行比较。如果确实存在达到最大的问题,可以通过ulimit -u 10240的方式将原有的1024个进行扩充,然后重启storm。
2. 错误的设置了worker.childopts的jvm参数。因为jvm参数较多,为了优化使用,可能会大量的查阅资料,网络上的资料对于参数的适用版本介绍的并不详细,随便就拿过来用,有可能造成worker启动后反复重启的问题。
3. 可能是由于storm kill一个tp后,迅速又上传了一个相同的tp。造成上一个tp的worker还没有完全停止,就开始进行了新任务的建立。可以在这2步之间延迟一段时间进行操作。



本文固定链接: http://anyoneking.com/archives/778 | 懒散狂徒的博客
标签: , , , ,

【上一篇】
【下一篇】

报歉!评论已关闭.