Docker 如何在一个节点中运行两个zookeeper服务器
我有三个物理节点,每个节点上都安装了Docker。我在每个docker上配置了Marathon、Flink、Mesos、Zookeeper和Hadoop。它们真的很好用。我必须将数据分发到Flink cluster,所以我需要Kafka。 动物园管理员已经运行;因此,卡夫卡运行时没有错误。问题是,在这种情况下,当我想创建卡夫卡主题时,我看到了这个错误,我认为这是因为我没有运行卡夫卡文件夹中的Zookeeper: 线程“main”kafka.zookeeper.ZooKeeperClientTimeoutException中出现异常:在状态为:正在连接时等待连接超时 在kafka.zookeeper.ZooKeeperClient$$anonfun$kafka$zookeeper$ZooKeeperClient$$waituntlconnected$1.应用$mcV$sp(ZooKeeperClient.scala:230) 在kafka.zookeeper.ZooKeeperClient$$anonfun$kafka$zookeeper$ZooKeeperClient$$waituntlconnected$1.apply(ZooKeeperClient.scala:226) 在kafka.zookeeper.ZooKeeperClient$$anonfun$kafka$zookeeper$ZooKeeperClient$$waituntlconnected$1.apply(ZooKeeperClient.scala:226) 在kafka.utils.CoreUtils$.inLock(CoreUtils.scala:251) 在kafka.zookeeper.ZooKeeperClient.kafka$zookeeper$ZooKeeperClient$$waituntlconnected(ZooKeeperClient.scala:226) 在卡夫卡。zookeeper.ZooKeeperClient。(ZooKeeperClient.scala:95) 位于kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1580) 位于kafka.admin.TopicCommand$.main(TopicCommand.scala:57) 位于kafka.admin.TopicCommand.main(TopicCommand.scala) 此外,我改变了在卡夫卡文件夹中使用Zookeeper的计划。为此,我在Kafka文件夹中配置Zookeeper,使用新端口,如218628893889。但是当我用这个命令运行Zookeeper时:Docker 如何在一个节点中运行两个zookeeper服务器,docker,apache-kafka,apache-zookeeper,Docker,Apache Kafka,Apache Zookeeper,我有三个物理节点,每个节点上都安装了Docker。我在每个docker上配置了Marathon、Flink、Mesos、Zookeeper和Hadoop。它们真的很好用。我必须将数据分发到Flink cluster,所以我需要Kafka。 动物园管理员已经运行;因此,卡夫卡运行时没有错误。问题是,在这种情况下,当我想创建卡夫卡主题时,我看到了这个错误,我认为这是因为我没有运行卡夫卡文件夹中的Zookeeper: 线程“main”kafka.zookeeper.ZooKeeperClientTim
/home/kafka_2.11-2.0.0/bin/zookeeper-server-start.sh /home/kafka_2.11-2.0.0/config/zookeeper.properties
我收到这个错误:
WARN无法在选举地址/10.32.0.3:3889(org.apache.zookeeper.server.quorum.QuorumCnxManager)打开到2的频道
java.net.ConnectException:拒绝连接(拒绝连接)
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
位于java.net.socksocketimpl.connect(socksocketimpl.java:392)
位于java.net.Socket.connect(Socket.java:589)
位于org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:558)
位于org.apache.zookeeper.server.quorum.qourumcnxmanager.toSend(qourumcnxmanager.java:534)
位于org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:454)
在org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:435)上
运行(Thread.java:748)
zookeeper的配置位于第一个节点的“/home/zookeeper-3.4.14/conf/zoo.cfg”中:
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
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
Kafka文件夹中的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
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容器中运行两个动物园管理员吗?顺便说一下,我不能为Kafka集群使用另一个容器,因为我需要两个具有一个公共IP地址的容器
任何帮助都将不胜感激 问题解决了。我使用了上面的配置,但对两个zookeeper都使用了dataDir=/var/lib/zookeeper/data。另外,首先,我运行Hadoop,然后用Zookeeper运行Kafka。问题解决了。我使用了上面的配置,但对两个zookeeper都使用了dataDir=/var/lib/zookeeper/data。另外,首先,我运行Hadoop,然后与Zookeeper一起运行Kafka。如果你有Hadoop,那么你就有纱线,它也可以运行容器,所以你不需要Mesos/MarathonDear@Cricket007,我选择Mesos,因为它比纱线有更多的功能。如果你有Hadoop,那么你就有纱线,它也可以运行容器,所以你不需要Mesos/MarathonDear@cricket_007,我选择了Mesos,因为它比纱线更具特色。