首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么动物园管理员不重新选举Apache集群的新领导人?

为什么动物园管理员不重新选举Apache集群的新领导人?
EN

Stack Overflow用户
提问于 2019-10-22 18:53:58
回答 1查看 1.2K关注 0票数 1

以下是我的架构

代码语言:javascript
复制
2 Servers:
Server 1: running Apache Nifi + Zookeeper (Not embedded)
Server 2: running Apache Nifi + Zookeeper (Not embedded)

要测试故障转移,我关闭已被选择为Cluster Coordinator的服务器

在这种情况下,动物园管理员应该自动选择剩下的一台服务器作为领导者。但是它一直失败,并进入了试图连接到第一台服务器的连续循环。

当领导者(服务器1)发生故障时,动物园管理员登录到服务器2中:

代码语言:javascript
复制
2019-10-22 18:44:01,135 [myid:2] - WARN  [NIOWorkerThread-2:NIOServerCnxn@370] - Exception causing close of session 0x0: ZooKeeperServer not running
2019-10-22 18:44:02,925 [myid:2] - WARN  [NIOWorkerThread-3:NIOServerCnxn@370] - Exception causing close of session 0x0: ZooKeeperServer not running
2019-10-22 18:44:03,320 [myid:2] - WARN  [QuorumPeer[myid=2](plain=/0:0:0:0:0:0:0:0:2181)(secure=disabled):QuorumCnxManager@677] - 
Cannot open channel to 1 at election address ec2-server-1.compute-1.amazonaws.com/172.xx.x.x:3888
    java.net.ConnectException: Connection refused (Connection refused)
            at java.net.PlainSocketImpl.socketConnect(Native Method)
            at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

服务器2 Config文件:

代码语言:javascript
复制
zoo.cfg

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/ec2-user/zookeeper
clientPort=2181
server.1=ec2-server-1.compute-1.amazonaws.com:2888:3888
server.2=0.0.0.0:2888:3888

nifi.properties

nifi.cluster.is.node=true
nifi.cluster.node.address=ec2-server-2.compute-1.amazonaws.com
nifi.cluster.node.protocol.port=8082
nifi.cluster.flow.election.max.wait.time=2 mins
nifi.cluster.flow.election.max.candidates=1

# zookeeper properties, used for cluster management #
nifi.zookeeper.connect.string=localhost:2181
nifi.zookeeper.root.node=/nifi

服务器1 Config文件:

代码语言:javascript
复制
zoo.cfg

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/ec2-user/zookeeper
clientPort=2181
server.1=0.0.0.0:2888:3888
server.2=ec2-server-2.compute-1.amazonaws.com:2888:3888

nifi.properties

nifi.cluster.is.node=true
nifi.cluster.node.address=ec2-server-1.compute-1.amazonaws.com
nifi.cluster.node.protocol.port=8082
nifi.cluster.flow.election.max.wait.time=2 mins
nifi.cluster.flow.election.max.candidates=1

# zookeeper properties, used for cluster management #
nifi.zookeeper.connect.string=localhost:2181
nifi.zookeeper.root.node=/nifi

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-23 06:59:37

您需要至少三个节点才能处理一个节点的故障。

查看Admin导轨

群集(多服务器)为可靠的ZooKeeper服务设置,您应该在集群中部署ZooKeeper,称为集成。只要大多数团员都能上线,这项服务就可以使用了。因为动物园管理员需要多数人,所以最好使用奇数的机器。例如,对于四台机器,ZooKeeper只能处理一台机器的故障;如果两台机器发生故障,则其余两台机器不占多数。但是,使用五台机器,ZooKeeper可以处理两台机器的故障。

一个更简单的解释-- 这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58510675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档