Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何在一个节点中运行两个zookeeper服务器_Docker_Apache Kafka_Apache Zookeeper - Fatal编程技术网

Docker 如何在一个节点中运行两个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

我有三个物理节点,每个节点上都安装了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时:

  /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,因为它比纱线更具特色。