zookeeper集群设置

dzjeubhm  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(419)

我可以在一台有3个不同端口的机器上设置zookeeper群集,但是当我在不同的ip上设置zookeeper示例时,它会抛出以下错误:

2014-11-20 12:16:24,819 [myid:1] - INFO  [main:QuorumPeerMain@127] - Starting quorum peer
2014-11-20 12:16:24,827 [myid:1] - INFO  [main:NIOServerCnxnFactory@94] - binding to port 0.0.0.0/0.0.0.0:2181
2014-11-20 12:16:24,842 [myid:1] - INFO  [main:QuorumPeer@959] - tickTime set to 2000
2014-11-20 12:16:24,842 [myid:1] - INFO  [main:QuorumPeer@979] - minSessionTimeout set to -1
2014-11-20 12:16:24,842 [myid:1] - INFO  [main:QuorumPeer@990] - maxSessionTimeout set to -1
2014-11-20 12:16:24,842 [myid:1] - INFO  [main:QuorumPeer@1005] - initLimit set to 10
2014-11-20 12:16:24,857 [myid:1] - INFO  [Thread-1:QuorumCnxManager$Listener@504] - My election bind port: /172.16.1.175:2223
2014-11-20 12:16:24,870 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumPeer@714] - LOOKING
2014-11-20 12:16:24,873 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:FastLeaderElection@815] - New election. My id =  1, proposed zxid=0x0
2014-11-20 12:16:24,876 [myid:1] - INFO  [WorkerReceiver[myid=1]:FastLeaderElection@597] - Notification: 1 (message format version), 1 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
2014-11-20 12:16:24,881 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@382] - Cannot open channel to 2 at election address /172.16.1.170:2223
java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:368)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:341)
    at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:449)
    at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:430)
    at java.lang.Thread.run(Thread.java:744)
xxslljrj

xxslljrj1#

如何为多个集群或远程服务器设置zookeeper?
步骤1:检查Java1.8.0或更高版本是否在/opt/java-version下的系统中可用
步骤2:使用以下命令从链接下载zookeeper-3.3.6

Sudo wget  http://redrockdigimark.com/apachemirror/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz

步骤3:使用下面的命令提取文件

Sudo tar xzf  zookeeper-3.3.6.tar.gz -C /opt/

第4步:将zookeeper-3.3.6Map到zookeeper,如下所示

/opt/>  ls -s zookeeper-3.3.6 zookeeper         then

/opt/>   Cd zookeeper/conf

步骤5:通过从zoo\u sample.cfg/opt/zookeeper/conf/>复制zoo.cfg来创建配置文件

cp zoo.cfg sample_zoo.cfg

步骤6:使用/opt/zookeeper/conf/>命令编辑zoo.cfg

sudo vi zoo.cfg

将数据目录创建为datadir=/var/lib/zookeeper
步骤7:在/var/lib/zookeeper下创建一个扩展名为myid的文件,并为server1指定唯一的id为1
将botton中的所有集群服务器添加为

server.1=0.0.0.0:2888:3888
server.2=184.72.205.209:2888:3888
server.3=34.207.92.20:2888:3888

步骤8:在/var/lib/zookeeper下创建一个扩展名为myid的文件,并为server2指定唯一的id为2
步骤9:为第二台服务器应用相同的配置,如下所示

server.1=34.229.138.19:2888:3888
server.2=0.0.0.0:2888:3888
server.3=34.207.92.20:2888:3888

步骤10:安装nc包和lsof包,如下所示

Sudo yum install nc

Sudo yum install lsof

步骤11:现在启动所有服务器中的zookeeper

Sudo /opt/zookeeper/bin/zkServer.sh start

步骤12:停止zookeeper服务器

Sudo /opt/zookeeper/bin/zkServer.sh Stop

检查zookeeper服务器的状态

Sudo /opt/zookeeper/bin/zkServer.sh Status

需要注意的要点
1.对于zookeeper 2f+1要维护的服务器,即如果您有1台服务器,那么(21)+1=3台要维护的服务器,如果您有2台服务器,那么(22)+1=5台要维护的服务器,f代表服务器的数量
2.所有服务器应具有zoo.cfg配置文件,本地服务器ip应为0.0.0.0
3.zookeeper使用2888端口连接到单个followers节点和leader节点
4.端口3888用于点对点通信
5.领队选举将由zookeeper自动进行,如果领队倒下,在2微秒内,它将选出另一个领队并分享追随者的信息
6.in zoo.cfg配置文件客户端端口必须为2181

v7pvogib

v7pvogib2#

你在所有的三个节点上都启动了zookeeper吗?在多集群设置中(假设您有一个具有多台计算机的分布式环境),每个服务器都知道集群中的其他节点,称为集成。它通过查看 zoo.cfg 文件。

server.1=zoo1:2888:3888
    server.2=zoo2:2888:3888

在多集群设置文档页面中
只要大多数人都起来了,服务就可以使用了。因为zookeeper需要大多数人,所以最好使用奇数台机器。例如,有四台机器的zookeeper只能处理一台机器的故障;如果两台机器出现故障,其余两台机器不构成多数。然而,有了五台机器,Zookeeper可以处理两台机器的故障
现在,除非您在所有三个节点中启动该进程,否则它将无法彼此通信并继续记录此类错误。这也许能帮你找到地方。

相关问题