首页 > 解决方案 > 在风暴拓扑和工作人员重新启动中获取与 Netty 客户端相关的错误

问题描述

Version Info: 
   "org.apache.storm" % "storm-core" % "1.2.1" 
   "org.apache.storm" % "storm-kafka-client" % "1.2.1" 

我有一个带有 3 个螺栓(A、B、C)的风暴拓扑,其中中间螺栓平均耗时 450 毫秒,其他两个螺栓不到 1 毫秒。

我在两台机器上运行具有以下并行提示值的拓扑:

A: 4 
B: 700
C: 10

拓扑启动几分钟后出现以下错误:

在工人日志中:

2018-07-04T20:16:28.835+05:30 客户端 [错误] 丢弃 7 条消息,因为 Netty 客户端到 Netty-Client-/ip:6700 正在关闭

在主管日志中:

2018-07-04 20:16:29.468 o.a.s.d.s.BasicContainer [INFO] Worker Process 32bc11c0-a1d0-4593-a91a-3ff788ea041a exited with code: 20

2018-07-04 20:16:31.592 o.a.s.d.s.Slot [WARN] SLOT 6700: main process has exited

2018-07-04 20:16:31.592 o.a.s.d.s.Container [INFO] Killing 2825cbe9-aedd-4f10-a796-4f9dc30ae72f:32bc11c0-a1d0-4593-a91a-3ff788ea041a

2018-07-04 20:16:31.600 o.a.s.u.Utils [INFO] Error when trying to kill 7422. Process is probably already dead.

2018-07-04 20:16:32.600 o.a.s.d.s.Slot [INFO] STATE RUNNING msInState: 391195 topo:myTopo-1-1530715184 worker:32bc11c0-a1d0-4593-a91a-3ff788ea041a -> KILL_AND_RELAUNCH msInState: 0 topo:myTopo-1-1530715184 worker:32bc11c0-a1d0-4593-a91a-3ff788ea041a

2018-07-04 20:16:32.600 o.a.s.d.s.Container [INFO] GET worker-user for 32bc11c0-a1d0-4593-a91a-3ff788ea041a

我在这里这里看到了类似的问题,我对此有一些疑问:

  1. 为什么会出现此错误以及如何解决?
  2. 如何从 Storm 中获取更多的调试信息,我已经设置好了conf.setDebug(true)
  3. 对于 n 台机器上的螺栓,是否有一些限制/指导方针?

编辑:

记录strace -fp PID -e trace=read,write,network,signal,ipcin gist。一些相关的外观部分是发生上述事情时,但是我SIGSEGV在 strace 输出中看到了很多地方:

[pid 23635] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7f83af6f1180} ---
[pid 23549] <... read resumed> "PK\3\4\n\0\0\0\10\0\364J\336F\222'\202\312\310\2\0\0\16\5\0\0\36\0\0\0", 30) = 30
[pid 23654] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7f83af6f1f80} ---
[pid 23549] read(23, "\235TmW\22A\24~\6\224\227u\vE4\255,JR\300WP\322\0245TH\23\313\3j\347"..., 712) = 712
[pid 23654] rt_sigreturn({mask=[QUIT]}) = 140203560738688
[pid 23635] rt_sigreturn({mask=[QUIT]}) = 140203560735104

工作进程的 strace 输出在这里,相关的日志在这里:

[pid 24435] recvfrom(291, "HTTP/1.1 200 OK\r\nContent-Type: a"..., 8192, 0, NULL, NULL) = 544
[pid 23473] write(3, "Heap\n garbage-first heap   total"..., 347) = 347
[pid 24434] +++ exited with 20 +++
[pid 24405] +++ exited with 20 +++
[pid 24435] +++ exited with 20 +++
[pid 24427] +++ exited with 20 +++

编辑2:

还有这个问题:工作日志中的连接被拒绝错误 - apache 风暴:作为标准答案,未设置storm.local.hostname可能会导致它,但它已经为我设置了。

此处提交的另一个错误具有类似的网络错误,该错误也仍未解决。

标签: apache-stormapache-storm-topology

解决方案


推荐阅读