как запустить два сервера zookeeper в одном узле - PullRequest
1 голос
/ 16 июня 2019

У меня есть три физических узла с установленным Docker на каждом из них. Я настроил Marathon, Flink, Mesos, Zookeeper и Hadoop на каждом докере. Они работают очень хорошо. Я должен распространять данные в кластер Flink, поэтому мне нужен Кафка. Zookeeper уже запущен; Итак, Кафка запускается без ошибок. Проблема в том, что в этой ситуации, когда я хочу создать тему Kafka, я вижу эту ошибку, потому что я не запускаю Zookeeper в папке Kafka:

Исключение в потоке "main" kafka.zookeeper.ZooKeeperClientTimeoutException: Превышен тайм-аут ожидания соединения в состоянии: CONNECTING at kafka.zookeeper.ZooKeeperClient $$ anonfun $ kafka $ zookeeper $ ZooKeeperClient $$ waitUntilConnected $ 1.применить $ 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) в kafka.utils.CoreUtils $ .inLock (CoreUtils.scala: 251) в kafka.zookeeper.ZooKeeperClient.kafka $ zookeeper $ ZooKeeperClient $$ waitUntilConnected (ZooKeeperClient.scala: 226) в kafka.zookeeper.ZooKeeperClient. (ZooKeeperClient.scala: 95) в kafka.zk.KafkaZkClient $ .apply (KafkaZkClient.scala: 1580) на kafka.admin.TopicCommand $ .main (TopicCommand.scala: 57) at kafka.admin.TopicCommand.main (TopicCommand.scala)

Кроме того, я изменяю свой план использования Zookeeper в папке Kafka. Для этого я настраиваю Zookeeper в папке Kafka с новыми портами, такими как 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

Я получаю эту ошибку:

ПРЕДУПРЕЖДЕНИЕ. Невозможно открыть канал для 2 по адресу выборов /10.32.0.3:3889 (org.apache.zookeeper.server.quorum.QuorumCnxManager) 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.SocksSocketImpl.connect (SocksSocketImpl.java:392) на 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)

Конфигурация 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

Конфигурация Zookeeper, которая находится в папке Kafka, выглядит так для первого узла:

     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, так как мне нужны два контейнера с одним общим IP-адресом.

Любая помощь будет очень признательна.

1 Ответ

0 голосов
/ 16 июня 2019

Проблема решена.Я использовал вышеуказанную конфигурацию, но использовал dataDir = / var / lib / zookeeper / data для обоих Zookeeper.Кроме того, сначала я запустил Hadoop, а затем запустил Kafka с Zookeeper.

...