У меня есть три разных узла, на каждом из которых есть докер с Ubuntu. Я хочу сделать кластер 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
Более того, каждый узел имеет файл «myid» в «/ tmp / zookeeper / data» среды докера с внутренним идентификатором сервера.
Чтобы сделать кластер Kafka из трех узлов, как показано на этом рисунке, я создаю файл "docker-compose.yaml" и файл docker для него.

Это мой файл docker-compose:
version: '3.7'
services:
zookeeper:
build: .
command: /root/kafka_2.11-2.0.1/bin/zookeeper-server-start.sh
/root/kafka_2.11-2.0.1/config/zookeeper.properties
ports:
- 2186:2186
kafka1:
build:
context: .
args:
brokerId: 0
command: /root/kafka_2.11-2.0.1/bin/kafka-server-start.sh
/root/kafka_2.11-2.0.1/config/server.properties
depends_on:
- zookeeper
kafka2:
build:
context: .
args:
brokerId: 1
command: /root/kafka_2.11-2.0.1/bin/kafka-server-start.sh
/root/kafka_2.11-2.0.1/config/server.properties
depends_on:
- zookeeper
kafka3:
build:
context: .
args:
brokerId: 2
command: /root/kafka_2.11-2.0.1/bin/kafka-server-start.sh
/root/kafka_2.11-2.0.1/config/server.properties
depends_on:
- zookeeper
producer:
build: .
command: bash -c "sleep 4 && /root/kafka_2.11-2.0.1/bin/kafka-
topics.sh --create --zookeeper zookeeper:2186 --replication-
factor 2 --partitions 3 --topic dates && while true; do date |
/kafka_2.11-2.0.1/bin/kafka-console-producer.sh --broker-list
kafka1:9092,kafka2:9092,kafka3:9092 --topic dates; sleep 1;
done "
depends_on:
- zookeeper
- kafka1
- kafka2
- kafka3
consumer:
build: .
command: bash -c "sleep 6 && /root/kafka_2.11-2.0.1/bin/kafka-
console-consumer.sh localhost:9092 --topic dates --bootstrap-
server kafka1:9092,kafka2:9092,kafka3:9092"
depends_on:
- zookeeper
- kafka1
- kafka2
- kafka3
Проблема в том, что после сборки dockerfile. когда я делаю "sudo docker-compose" на каждом узле. Это не работает полностью. Вот некоторые из моих журналов:
zookeeper_1 | [2019-01-17 16: 09: 27,197] ИНФОРМАЦИЯ Чтение конфигурации из: /root/kafka_2.11-2.0.1/config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
kafka3_1 | [2019-01-17 16: 09: 29,426] ИНФОРМАЦИЯ Зарегистрированный kafka: type = kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration $)
kafka3_1 | [2019-01-17 16: 09: 29,702] ИНФОРМАЦИЯ запускается (kafka.server.KafkaServer)
kafka3_1 | [2019-01-17 16: 09: 29,702] ИНФОРМАЦИЯ Подключение к zookeeper 150.20.11.157:2186,150.20.11.134:2186,150.20.11.137:2186 (kafka.server.KafkaServer)
kafka1_1 | [2019-01-17 16: 09: 30,012] ИНФОРМАЦИЯ Зарегистрированный kafka: type = kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration $)
zookeeper_1 | [2019-01-17 16: 09: 27,240] ИНФОРМАЦИЯ Разрешенное имя хоста: 150.20.11.137 по адресу: /150.20.11.137 (org.apache.zookeeper.server.quorum.QuorumPeer)
kafka1_1 | [2019-01-17 16: 09: 30,486] INFO запускается (kafka.server.KafkaServer)
kafka3_1 | [2019-01-17 16: 09: 29,715] INFO [ZooKeeperClient] Инициализация нового сеанса до 150.20.11.157:2186, 150.20.11.134:2186, 150.20.11.137:2186. (Kafka.zookeeper.ZooKeeperClient)
zookeeper_1 | [2019-01-17 16: 09: 27,241] ИНФОРМАЦИЯ Разрешенное имя хоста: 150.20.11.134 по адресу: /150.20.11.134 (org.apache.zookeeper.server.quorum.QuorumPeer)
zookeeper_1 | [2019-01-17 16: 09: 27,241] ИНФОРМАЦИЯ Разрешенное имя хоста: 0.0.0.0 по адресу: /0.0.0.0 (org.apache.zookeeper.server.quorum.QuorumPeer)
kafka3_1 | [2019-01-17 16: 09: 29,720] ИНФОРМАЦИЯ Клиентская среда: zookeeper.version = 3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, построена 29.06.2008 00:39 GMT (org.apache.zookeeper.ZooKeeper)
zookeeper_1 | [2019-01-17 16: 09: 27,241] ИНФО По умолчанию для кворумов большинства (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
kafka3_1 | [2019-01-17 16: 09: 29,721] ИНФО Клиентская среда: host.name = be08b050be4c (org.apache.zookeeper.ZooKeeper)
zookeeper_1 | [2019-01-17 16: 09: 27,242] ОШИБКА Неверный конфиг, неправильный выход (org.apache.zookeeper.server.quorum.QuorumPeerMain)
zookeeper_1 | org.apache.zookeeper.server.quorum.QuorumPeerConfig $ ConfigException: Ошибка обработки /root/kafka_2.11-2.0.1/config/zookeeper.properties
zookeeper_1 | в org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse (QuorumPeerConfig.java:156)
zookeeper_1 | в org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun (QuorumPeerMain.java:104)
zookeeper_1 | в org.apache.zookeeper.server.quorum.QuorumPeerMain.main (QuorumPeerMain.java:81)zookeeper_1 | Вызывается: java.lang.IllegalArgumentException: / tmp / zookeeper / data / myid отсутствует файл
zookeeper_1 | в org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties (QuorumPeerConfig.java:408)
zookeeper_1 | в org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse (QuorumPeerConfig.java:152)
zookeeper_1 | ... еще 2
kafka1_1 | [2019-01-17 16: 09: 30,487] ИНФОРМАЦИЯ Подключение к zookeeper 150.20.11.157:2186,150.20.11.134:2186,150.20.11.137:2186 (kafka.server.KafkaServer)
zookeeper_1 | Неверный конфиг, выход abnormall
Фактически я настроил кластер Kafka без использования докера на каждом узле, и я мог без проблем запускать Zookeeper и сервер Kafka. Кластер Кафки был похож на эту картинку:

Скажите, пожалуйста, что я делаю неправильно, чтобы настроить этот cluser?
Любая помощь будет принята с благодарностью.