Kafka connect не находит доступных брокеров при подключении тома - PullRequest
1 голос
/ 28 мая 2020

Симптом : измененный образ bitnami kafka содержит jar-файлы kafka-connect, они работают нормально. Но как только я добавляю том для настойчивости, он не может найти существующих брокеров.

Подробности : Я модифицировал изображение битнами таким образом, чтобы скопировать файлы подключения и запустить распределенное подключение. . sh. Он работает нормально, соединители могут потреблять и передавать из / в темы

Но как только я добавляю постоянный том к образу kafka, первый запуск в порядке, а следующий - нет. connect.log говорит:

"[2020-05-21 15:59:34,786] ERROR [Worker clientId=connect-1, groupId=my-group1] Uncaught exception in herder work thread, exiting:  (org.apache.kafka.connect.runtime.distributed.DistributedHerder:297)
g.apache.kafka.common.KafkaException: Unexpected error fetching metadata for topic connect-offsets
        at org.apache.kafka.clients.consumer.internals.Fetcher.getTopicMetadata(Fetcher.java:403)
        at org.apache.kafka.clients.consumer.KafkaConsumer.partitionsFor(KafkaConsumer.java:1965)
        at org.apache.kafka.clients.consumer.KafkaConsumer.partitionsFor(KafkaConsumer.java:1933)
        at org.apache.kafka.connect.util.KafkaBasedLog.start(KafkaBasedLog.java:138)
        at org.apache.kafka.connect.storage.KafkaOffsetBackingStore.start(KafkaOffsetBackingStore.java:109)
        at org.apache.kafka.connect.runtime.Worker.start(Worker.java:186)
        at org.apache.kafka.connect.runtime.AbstractHerder.startServices(AbstractHerder.java:123)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:284)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor is below 1 or larger than the number of available brokers." 

Сама кафка по-прежнему работает хорошо, все топи c присутствуют (коэффициент репликации 1), и я могу потреблять / создавать сообщения вручную. И я также могу успешно запустить систему коннекторов вручную. уже присутствуют и пытается загрузить их до запуска кафки.

edit2:
модифицированное изображение:

    FROM bitnami/kafka
    // copying connect jars..
    ADD connect-distributed.properties /opt/prop/connect-distributed.properties
    ADD modded-kafka-run.sh /opt/bitnami/scripts/kafka/run.sh
    RUN chmod 755 /opt/bitnami/scripts/kafka/run.sh

модифицированное выполнение. sh (I просто добавил распространенный. sh и завиток к нему):

    info "** Starting Kafka **"
    /opt/bitnami/kafka/bin/connect-distributed.sh -daemon /opt/prop/connect-distributed.properties
   //.. adding the connectors with curl
    if am_i_root; then
        exec gosu "$KAFKA_DAEMON_USER" "${START_COMMAND[@]}"
    else
        exec "${START_COMMAND[@]}"
    fi

исходный запуск. sh: https://github.com/bitnami/bitnami-docker-kafka/blob/master/2/debian-10/rootfs/opt/bitnami/scripts/kafka/run.sh

1 Ответ

0 голосов
/ 28 мая 2020

Трудно сказать, в чем проблема, но ENTRYPOINT, запускающий Kafka, на самом деле запускает после любой команды RUN.

Непонятно, зачем вам нужно создавать свой собственный образ Kafka Connect, когда как минимум два существуют

Вы должны использовать docker -compose для запуска 3 отдельных кластеров Zookeeper, Kafka и Connect

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...