有没有可能监视apache storm发送到nimbus的心跳事件?
我目前遇到了一个问题,我的工作人员似乎被随机重新分配,尽管我们没有看到集群中cpu、ram、i/o或网络使用率出现任何明显的峰值,这可能表明存在瓶颈。我唯一能够监视它的方法是在检查supervisor.log文件时( Shutting down and clearing id . Current supervisor time: 123. State: :disallowed, Heartbeat: { ... }
)以及应用程序结果中的错误行为。storm ui中没有错误,工作日志中没有stacktraces(例如内存不足或其他任何情况)。
在一个小的4节点集群上运行storm 0.10,有12个工人和650个执行者。worker的maxjvmram/childopts设置是4096mib,它不应该使用gc呈现有趣的结果。
1条答案
按热度按时间brgchamk1#
事实上,任务heartbeat是通过向zookeeper写入它们的内置度量来完成的,nimbus从zookeeper读取它们。
当storm集群中有太多任务时,可能会发生对zk的大量写入,这使得zk过载,导致写/读心跳不及时。所以当你发现zk是瓶颈时,你需要监视zookeeper并采取适当的措施。