我可以在一台有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)
2条答案
按热度按时间xxslljrj1#
如何为多个集群或远程服务器设置zookeeper?
步骤1:检查Java1.8.0或更高版本是否在/opt/java-version下的系统中可用
步骤2:使用以下命令从链接下载zookeeper-3.3.6
步骤3:使用下面的命令提取文件
第4步:将zookeeper-3.3.6Map到zookeeper,如下所示
步骤5:通过从zoo\u sample.cfg/opt/zookeeper/conf/>复制zoo.cfg来创建配置文件
步骤6:使用/opt/zookeeper/conf/>命令编辑zoo.cfg
将数据目录创建为datadir=/var/lib/zookeeper
步骤7:在/var/lib/zookeeper下创建一个扩展名为myid的文件,并为server1指定唯一的id为1
将botton中的所有集群服务器添加为
步骤8:在/var/lib/zookeeper下创建一个扩展名为myid的文件,并为server2指定唯一的id为2
步骤9:为第二台服务器应用相同的配置,如下所示
步骤10:安装nc包和lsof包,如下所示
步骤11:现在启动所有服务器中的zookeeper
步骤12:停止zookeeper服务器
检查zookeeper服务器的状态
需要注意的要点
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
v7pvogib2#
你在所有的三个节点上都启动了zookeeper吗?在多集群设置中(假设您有一个具有多台计算机的分布式环境),每个服务器都知道集群中的其他节点,称为集成。它通过查看
zoo.cfg
文件。在多集群设置文档页面中
只要大多数人都起来了,服务就可以使用了。因为zookeeper需要大多数人,所以最好使用奇数台机器。例如,有四台机器的zookeeper只能处理一台机器的故障;如果两台机器出现故障,其余两台机器不构成多数。然而,有了五台机器,Zookeeper可以处理两台机器的故障
现在,除非您在所有三个节点中启动该进程,否则它将无法彼此通信并继续记录此类错误。这也许能帮你找到地方。