首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Zookeeper Network Ensemble未正确启动

Zookeeper Network Ensemble未正确启动
EN

Stack Overflow用户
提问于 2013-04-06 04:03:43
回答 1查看 8.4K关注 0票数 8

我最近一直在与zookeeper合作,以满足分布式应用程序中的可靠性要求。我正在使用三台计算机,我遵循了以下教程:

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

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

./zkServer.sh start

对于我所有的计算机,我都得到了以下异常:

代码语言:javascript
运行
复制
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 Web Päge,寻找关于如何配置和启动我的zookeeper的相同信息,但步骤与我之前遵循的步骤相同。

如果有人能帮我,我会很高兴的。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-26 02:09:47

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

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

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

代码语言:javascript
运行
复制
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。

在此之后,执行:

代码语言:javascript
运行
复制
./zkServer.sh start

也许会出现一些异常,但这是因为至少有两个动物园管理员必须同步,当你启动至少两个动物园管理员时,异常应该会消失。

诚挚的问候。

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

https://stackoverflow.com/questions/15842553

复制
相关文章

相似问题

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