ОШИБКА Неверный конфиг, ненормальный выход из кластера Kafka - PullRequest
0 голосов
/ 16 января 2019

У меня есть три разных узла, на каждом из которых есть докер с Ubuntu.Я могу запустить сервер zookeeper на докере локально (я имею в виду без какой-либо конфигурации для кластера), но я хочу сделать кластер kafka с этими тремя узлами;Фактически, я установил докер на каждый узел с загрузкой на них Ubuntu.Я настраиваю "zookeeper.properties" в среде докера для «150.20.11.157» следующим образом:

dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=0.0.0.0:2888:3888
server.2=150.20.11.134:2888:3888
server.3=150.20.11.137:2888:3888
clientPort=2186

Для узла 150.20.11.134 файл «zookeeper.properties» в среде докера выглядит следующим образом:

dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=150.20.11.157:2888:3888
server.2=0.0.0.0:2888:3888
server.3=150.20.11.137:2888:3888
clientPort=2186

Для узла 150.20.11.137 файл "zookeeper.properties" в среде докера выглядит следующим образом:

dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=150.20.11.157:2888:3888
server.2=150.20.11.134:2888:3888
server.3=0.0.0.0:2888:3888
clientPort=2186

Кроме того, я настраиваю "server.properties" следующим образом для узла 150.20.11.157:

broker.id=0
port=9092
listeners = PLAINTEXT://150.20.11.157:9092
log.dirs=/tmp/kafka-logs 
zookeeper.connect=150.20.11.157:2186,150.20.11.134:2186,
150.20.11.137:2186

«server.properties» для узла 150.20.11.134:

broker.id=1
port=9092
listeners = PLAINTEXT://150.20.11.134:9092
log.dirs=/tmp/kafka-logs 
zookeeper.connect=150.20.11.157:2186,150.20.11.134:2186,
150.20.11.137:2186

«server.properties» для узла 150.20.11.137:

broker.id=2
port=9092
listeners = PLAINTEXT://150.20.11.137:9092
log.dirs=/tmp/kafka-logs 
zookeeper.connect=150.20.11.157:2186,150.20.11.134:2186,
150.20.11.137:2186

Проблема в том, что я запускаю сервер zookeeper на докере каждого узла.Я получаю эту ошибку:

[2019-01-16 12:45:54,588] INFO Reading configuration from: ./config/zookeeper.properties 
(org.apache.zookeeper.server.quorum.QuorumPeerConfig)

[2019-01-16 12:45:54,601] INFO Resolved hostname: 172.28.10.137 to address: /172.28.10.137 (org.apache.zookeeper.server.quorum.QuorumPeer)

[2019-01-16 12:45:54,603] INFO Resolved hostname: 0.0.0.0 to address: /0.0.0.0 (org.apache.zookeeper.server.quorum.QuorumPeer)

[2019-01-16 12:45:54,603] INFO Resolved hostname: 172.28.10.157 to address: /172.28.10.157 (org.apache.zookeeper.server.quorum.QuorumPeer)

[2019-01-16 12:45:54,603] INFO Defaulting to majority quorums (org.apache.zookeeper.server.quorum.QuorumPeerConfig)

[2019-01-16 12:45:54,604] ERROR Invalid config, exiting abnormally (org.apache.zookeeper.server.quorum.QuorumPeerMain)

org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing ./config/zookeeper.properties
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:156)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:104)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:81)
Caused by: java.lang.IllegalArgumentException: /tmp/zookeeper/data/myid file is missing
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:408)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:152)    
... 2 more

Invalid config, exiting abnormally

Подскажите, пожалуйста, как создать кластер Kafka с тремя докерами, чтобы каждый докер находился на одном физическом узле?

Заранее спасибо.

1 Ответ

0 голосов
/ 16 января 2019

Я тоже столкнулся с этим.

Я думаю, что ключ к этому находится в журналах, т. Е.

Причина: java.lang.IllegalArgumentException: / tmp / zookeeper / data / myid файл отсутствует в org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties (QuorumPeerConfig.java:408)

Следующие строки в вашем файле zookeeper.properties содержат подробную информацию об ансамбле zookeeper:

server.1=0.0.0.0:2888:3888
server.2=150.20.11.134:2888:3888
server.3=150.20.11.137:2888:3888

Когда запускается один из серверов zookeeper, он знает, какой это сервер, просматривая файл myid в своем файле.собственный каталог данных, который в этом случае будет /tmp/zookeeper/data.

Итак, все, что вам нужно сделать, это просто создать файл с именем myid в указанном выше каталоге каждого сервера и написать только x= 1, 2 или 3 (соответствуют серверу. x в файле zookeeper.properties).

Ссылочная ссылка - Apache Zookeeper .

Надеюсь, это поможет!

...