gpt4 book ai didi

docker - 如何在一个节点上运行两个 Zookeeper 服务器

转载 作者:行者123 更新时间:2023-12-02 19:57:54 24 4
gpt4 key购买 nike

我有三个物理节点,每个节点都安装了 Docker。我已经在每个 docker 上配置了 Marathon、Flink、Mesos、Zookeeper 和 Hadoop。他们工作得很好。我必须将数据分发到 Flink 集群,所以我需要 Kafka。
Zookeeper 已经运行;所以,Kafka 运行没有错误。问题是,在这种情况下,当我想创建 Kafka 主题时,我看到了这个错误,我认为这是因为我没有运行 Kafka 文件夹中的 Zookeeper:

Exception in thread "main" kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING at kafka.zookeeper.ZooKeeperClient$$anonfun$kafka$zookeeper$ZooKeeperClient$$waitUntilConnected$1.apply$mcV$sp(ZooKeeperClient.scala:230) at kafka.zookeeper.ZooKeeperClient$$anonfun$kafka$zookeeper$ZooKeeperClient$$waitUntilConnected$1.apply(ZooKeeperClient.scala:226) at kafka.zookeeper.ZooKeeperClient$$anonfun$kafka$zookeeper$ZooKeeperClient$$waitUntilConnected$1.apply(ZooKeeperClient.scala:226) at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:251) at kafka.zookeeper.ZooKeeperClient.kafka$zookeeper$ZooKeeperClient$$waitUntilConnected(ZooKeeperClient.scala:226) at kafka.zookeeper.ZooKeeperClient.(ZooKeeperClient.scala:95) at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1580) at kafka.admin.TopicCommand$.main(TopicCommand.scala:57) at kafka.admin.TopicCommand.main(TopicCommand.scala)



另外,我更改了在 Kafka 文件夹中使用 Zookeeper 的计划。为此,我在 Kafka 文件夹中配置 Zookeeper 并使用新端口,如 2186,2889,3889 .但是当我用这个命令运行 Zookeeper 时:
  /home/kafka_2.11-2.0.0/bin/zookeeper-server-start.sh /home/kafka_2.11-2.0.0/config/zookeeper.properties

我收到此错误:

WARN Cannot open channel to 2 at election address /10.32.0.3:3889 (org.apache.zookeeper.server.quorum.QuorumCnxManager) java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589)

at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:558)

at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:534)

at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:454)

at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:435) at java.lang.Thread.run(Thread.java:748)



第一个节点的“/home/zookeeper-3.4.14/conf/zoo.cfg”中的zookeeper配置:
    tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper/data
clientPort=2181
server.1=0.0.0.0:2888:3888
server.2=10.32.0.3:2888:3888
server.3=10.32.0.4:2888:3888

Kafka 文件夹中的 Zookeeper 配置对于第一个节点是这样的:
     dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2186
server.1=0.0.0.0:2889:3889
server.2=10.32.0.3:2889:3889
server.3=10.32.0.4:2889:3889

请指导我如何在一个 docker 容器中运行两个 Zookeeper?顺便说一句,我不能为 Kafka 集群使用另一个容器,因为我需要两个具有一个公共(public) IP 地址的容器。

任何帮助将非常感激。

最佳答案

问题解决了。我使用了上面的配置,但是使用了 dataDir=/var/lib/zookeeper/数据对于两个动物园管理员。另外,我首先运行 Hadoop,然后使用 Zookeeper 运行 Kafka。

关于docker - 如何在一个节点上运行两个 Zookeeper 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56618966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com