我在最近升级的Storm 1.2.1版本中提交拓扑时遇到以下错误。
69001 [pool-7-thread-1] WARN o.a.s.u.NimbusClient - Ignoring exception while trying to get leader nimbus info from <ip>. will retry with a different seed host.
java.lang.RuntimeException: java.lang.RuntimeException: org.apache.storm.thrift.transport.TTransportException: java.net.SocketException: Broken pipe
at org.apache.storm.security.auth.ThriftClient.reconnect(ThriftClient.java:112) ~[storm-core-1.2.1.jar:1.2.1]
at org.apache.storm.security.auth.ThriftClient.<init>(ThriftClient.java:73) ~[storm-core-1.2.1.jar:1.2.1]
at org.apache.storm.utils.NimbusClient.<init>(NimbusClient.java:136) ~[storm-core-1.2.1.jar:1.2.1]
at org.apache.storm.utils.NimbusClient.getConfiguredClientAs(NimbusClient.java:92) [storm-core-1.2.1.jar:1.2.1]
at org.apache.storm.utils.NimbusClient.getConfiguredClientAs(NimbusClient.java:66) [storm-core-1.2.1.jar:1.2.1]
at org.apache.storm.utils.NimbusClient.getConfiguredClient(NimbusClient.java:58) [storm-core-1.2.1.jar:1.2.1]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_79]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.7.0_79]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.7.0_79]
at java.lang.Thread.run(Thread.java:745) [?:1.7.0_79]
Caused by: java.lang.RuntimeException: org.apache.storm.thrift.transport.TTransportException: java.net.SocketException: Broken pipe
at org.apache.storm.security.auth.TBackoffConnect.retryNext(TBackoffConnect.java:64) ~[storm-core-1.2.1.jar:1.2.1]
at org.apache.storm.security.auth.TBackoffConnect.doConnectWithRetry(TBackoffConnect.java:56) ~[storm-core-1.2.1.jar:1.2.1]
at org.apache.storm.security.auth.ThriftClient.reconnect(ThriftClient.java:104) ~[storm-core-1.2.1.jar:1.2.1]
... 16 more
检查nimbus.log文件:
o.a.s.t.s.AbstractNonblockingServer$FrameBuffer Thread-9 [ERROR] Read a frame size of 16777216, which is bigger than the maximum allowable buffer size for ALL connections.
更新
更改了nimbus.thrift.max_buffer_size:20000000并且拓扑没有提交,客户端也没有警告/错误日志。服务器
在杀死nimbus的同时,由于传输可能不完整,我的管道异常会被破坏。我不确定为什么这很慢。
这个问题的原因是什么?
答案 0 :(得分:0)
设置 storm.thrift.transport
客户端配置&amp;中的“org.apache.storm.security.auth.plain.PlainSaslTransportPlugin” storm.yml文件解决了这个问题。
我在storm.yml&amp;中使用了SimpleTransportPlugin。客户端配置中的PlainSaslTransportPlugin导致此问题。