apache-zookeeper - 当某些 Zookeeper 节点发生故障时,storm 就会终止

标签 apache-zookeeper apache-storm

我有一个 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/

相关文章:

java - Storm bolt 如何从不同的喷口或其他 bolt 接收多种类型的元组?

java - Storm Bolt 中跨任务的变量

hadoop - Storm 不受控制的元组乘法

elasticsearch - 卡夫卡 : client has run out of available brokers to talk to

apache-zookeeper - 卡夫卡消费者不能从 eclipse 中工作

java - 从 Java 应用程序连接到 Kerberos 安全的 HBase 集群

java - 向storm集群提交拓扑时出错

javascript - 高速传输的流数据可视化

apache-kafka - 在特定的 Kafka 分区中消费和生成消息?

java - ZooKeeper 启动成功但不工作