我有一个 nimbus 服务器和 3 个 Zookeeper 节点。
我的storm.yaml 文件如下所示:
storm.zookeeper.servers:
- "server1"
- "server2"
- "server3"
nimbus.host: "nimbus-server"
storm.local.dir: "/var/storm"
我的zoo.cfg文件都是这样的:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/zookeeper
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.3=server1:2888:3888
server.4=server2:2888:3888
server.5=server3:2888:3888
当所有三个zookeeper节点都运行时,根据storm_ui,一切都很好。如果我关闭这三个节点之一,nimbus 服务器会提示它无法连接到 Zookeeper 集群,然后就挂掉了。我无法在任何地方找到为什么会发生这种情况。文档说,如果我有三个 Zookeeper 节点,它应该容忍其中一个节点死亡。是否必须在其中之一中设置某些内容才能使其工作?
最佳答案
这原来是 iptables。 Zookeeper 服务器之间从来没有法定人数,因此实际上,在我停止的服务器退出后,它的行为就如其应有的那样。我在一台没有打开端口的服务器上打开了 2181、2888 和 3888 端口,现在我可以在 Storm 还活着的情况下杀死其中一台。
关于apache-zookeeper - 当某些 Zookeeper 节点发生故障时,storm 就会终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19283048/