我将代码库从1.1.1升级到使用storm 2.0.0。现在我观察到,如果我在本地模式下运行拓扑,它会在几分钟后耗尽内存。
[线程id=asynclocalizer executor-2-eventthread]dev-apc180-local o.a.s.s.o.a.z.clientcnxn调用观察程序java.lang.outofmemoryerror时出错:无法在java.lang.thread.start0(本机方法)和java.lang.thread.start(线程)处创建新的本机线程。java:717)在org.apache.storm.shade.org.apache.zookeeper.clientcnxn.start(clientcnxn。java:421)在org.apache.storm.shade.org.apache.zookeeper.zookeeper。java:454)在org.apache.storm.shade.org.apache.curator.utils.defaultzookeeperfactory.newzookeeper(defaultzookeeperfactory。java:29)在org.apache.storm.shade.org.apache.curator.framework.imps.curatorframeworkimpl$2.newzookeeper(curatorframeworkimpl。java:213)在org.apache.storm.shade.org.apache.curator.handleholder$1.getzookeeper(handleholder。java:101)在org.apache.storm.shade.org.apache.curator.handleholder.getzookeeper(handleholder。java:57)在org.apache.storm.shade.org.apache.curator.connectionstate.reset(connectionstate。java:204)在org.apache.storm.shade.org.apache.curator.connectionstate.handleexpiredsession(connectionstate。java:380)在org.apache.storm.shade.org.apache.curator.connectionstate.checkstate(connectionstate。java:315)在org.apache.storm.shade.org.apache.curator.connectionstate.process(connectionstate。java:169)在org.apache.storm.shade.org.apache.zookeeper.clientcnxn$eventthread.processevent(clientcnxn。java:533)在org.apache.storm.shade.org.apache.zookeeper.clientcnxn$eventthread.run(clientcnxn。java:508)
上面是错误的堆栈跟踪。在更深入的分析中,我发现大约有5000个“asynclocalizer eventthread”和“asynclocalizer sendthread”线程。它由asynclocalizer.updateblobs生成。
asynclocalizer.updateblobs是每30秒运行一次的计划任务。请给我指一下正确的方向。我不知道我错过了什么。
1条答案
按热度按时间g0czyy6m1#
这很可能是由于https://issues.apache.org/jira/browse/storm-3501. blob cleanup在2.0.0中被破坏,因此主管一直尝试下载实际删除的blob。我认为这也导致它开始大量的馆长示例。