在storm0.8.1中,如果一个topology开的并发和worker比较大的时候,偶尔会报KeeperException$NoNodeException错:
在storm-0.8.3的版本中已经修复,但是storm-0.8.3并没有发行的版本,可以通过编译自己的storm-0.8.1版本来修复这个问题:
1、使用storm-0.8.3版本的storm.trident.topology.state.RotatingTransactionalState来替换storm-0.8.1的RotatingTransactionalState类
2、重新编译strom源码
3、把新的jar包替换集群中的storm包
ps:从storm-0.8.3的修改日志可以看出RotatingTransactionalState这个类修复了改问题,也给出了出现这个错误的原因: