【问题标题】:Zookeeper Network Ensemble does not start appropiatelyZookeeper Network Ensemble 未正确启动
【发布时间】:2023-03-21 09:12:01
【问题描述】:

我最近一直在使用 zookeeper 来满足分布式应用程序的可靠性要求。我正在使用三台计算机,并按照本教程进行操作:

http://sanjivblogs.blogspot.ie/2011/04/deploying-zookeeper-ensemble.html

我一步一步地确保我做得很好,但现在当我开始我的动物园管理员时

./zkServer.sh start

我的所有计算机都出现了这些例外情况:

2013-04-05 21:46:58,995 [myid:2] - WARN [SendWorker:1:QuorumCnxManager$SendWorker@679] - Interrupted while waiting for message on queue
java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:1961)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2038)
at java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:342)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.pollSendQueue(QuorumCnxManager.java:831)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.access$500(QuorumCnxManager.java:62)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker.run(QuorumCnxManager.java:667)
2013-04-05 21:46:58,995 [myid:2] - WARN [SendWorker:1:QuorumCnxManager$SendWorker@688] - Send worker leaving thread

2013-04-05 21:47:58,363 [myid:2] - WARN [RecvWorker:3:QuorumCnxManager$RecvWorker@762] - Connection broken for id 3, my id = 2, error = 
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:375)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker.run(QuorumCnxManager.java:747)

但我不知道我做错了什么才能得到这个。我的目标是在不同的机器上同步我的动物园管理员,以便始终获得可用的服务。我访问了 zookeeper.apache.org 网页并查找有关如何配置和启动 zookeeper 的相同信息,但与我之前遵循的步骤相同。

如果有人可以帮助我,我真的很感激。提前致谢。

【问题讨论】:

    标签: java sockets configuration apache-zookeeper


    【解决方案1】:

    我需要遵循一些严格的步骤来实现这一点,但最终还是做到了。如果有人遇到同样的问题,要让 zookeeper 合奏,请记住:

    您需要运行 3 个 Zookeeper 服务器(本地或通过网络),这是实现同步的最小数量。在每个服务器中,需要创建一个名为“myid”的文件(在zookeeper文件夹内),每个myid文件的内容必须是一个序号,比如我有3个zookeeper服务器(文件夹),所以我有一个myid 内容为 1,其他内容为 2,其他内容为 3。

    然后在 zoo.cfg 中需要设置所需的参数:

    tickTime=2000
    #dataDir=/var/lib/zookeeper
    dataDir=/home/mtataje/var/zookeeper1
    clientPort=2184
    initLimit=10
    syncLimit=20
    server.1=192.168.3.41:2888:3888
    server.2=192.168.3.41:2889:3889
    server.3=192.168.3.41:2995:2999
    

    zoo.cfg 因服务器而异,就我而言,因为我在本地进行测试,所以需要更改端口和 dataDir。

    之后,执行:

    ./zkServer.sh start
    

    可能会出现一些异常,但这是因为至少要同步两个zookeeper,当你启动至少2个zookeeper时,异常应该就没有了。

    最好的问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 2020-04-15
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 2014-01-14
      • 2014-09-27
      相关资源
      最近更新 更多