kafka_connect не находит свои разъемы - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть конфлюентный кластер kafka , работающий внутри докер-контейнеров на машинах EC2, как показано ниже

  • 3 док-контейнеров на отдельных экземплярах EC2 для зоокейперов и kafka-брокеров
  • 1 докерский контейнер в том же экземпляре EC2, что вышеуказанный контрольный центр работает для kafka_connect

Ниже приведеныконфигурации для control_center и kafka_connect

ЦЕНТР УПРАВЛЕНИЯ

bootstrap.servers=<ec2_1:9092,ec2_2:9092,ec_3:9092>
zookeeper.connect=<ec2_1:2181,ec2_2:2181,ec_3:2181>
confluent.controlcenter.data.dir=/var/lib/confluent-control-center
confluent.monitoring.interceptor.topic.replication=1
confluent.controlcenter.internal.topics.replication=1
confluent.controlcenter.command.topic.replication=1
confluent.metrics.topic.replication=1
confluent.controlcenter.internal.topics.partitions=1
confluent.monitoring.interceptor.topic.partitions=1
confluent.controlcenter.config.dir=/etc/confluent-control-center
confluent.controlcenter.streams.num.stream.threads=2
confluent.controlcenter.replication.factor=1
confluent.controlcenter.connect.cluster=http://<kafka_connect_ec2>:8083

KAFKA-CONNECT

config.storage.topic=connect_config
log4j.root.loglevel=INFO
group.id=kafka-connect
bootstrap.servers=<ec2_1:9092,ec2_2:9092,ec_3:9092>
plugin.path=/usr/share/confluent-hub-components
key.converter=org.apache.kafka.connect.json.JsonConverter
offset.storage.topic=connect-offsets
internal.key.converter.schemas.enable=false
consumer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
value.converter=org.apache.kafka.connect.json.JsonConverter
status.storage.topic=connect-status
producer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor
internal.value.converter.schemas.enable=false
rest.advertised.host.name=CONNECT
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter=org.apache.kafka.connect.json.JsonConverter

И ниже показано, что у меня установлен разъем gcs в каталоге плагинов

root@76763ee93675:/usr/share/confluent-hub-components# ls
confluentinc-kafka-connect-gcs

Однако, когда я запускаю контейнеры, я не вижу gcs ни при достижении оставшегося API-интерфейса kafka-connect с помощью этого

http://kafka_connect_ec2:8083/connectors

вышеизложенное возвращает пустой список []

, и при этом я не вижу gcs разъем в control_cвведите

enter image description here

В некоторых сообщениях предлагается переместить файл gcs jar в каталог плагинов, я попытался безуспешно.

Еще одна вещь, которую я не могу понять, на рисунке вы можете видеть, что есть 2 разъема, которые control_center могут «видеть»

  • SchemaSourceConnector
  • FileStreamSourceConnector

Я не уверен, где находится control_center , где их можно найти.

Может кто-нибудь подсказать, что здесь неправильно настроено?

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

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

В случае, если кто-то еще наткнется на проблему, подобную этой ... То, что происходило, состояло в том, что у док-контейнера, на котором работал kafka-connect, не было достаточно ресурсов для загрузки всех соединителей, поэтому он либо загрузил бы некоторые изсоединители и пропустите остальные, иначе не хватит ресурсов и сделает хост недоступным.Я хотел бы, чтобы журналы подключения Kafka отражали тот факт, что загрузка соединителя не удалась.В любом случае, поскольку я запускаю установку на экземпляре EC2, все, что мне нужно было сделать, это обновить размер экземпляра, и это решило проблему.Спасибо!

1 голос
/ 04 апреля 2019

Центр управления, вероятно, не является проблемой, поэтому не требуется никакой конфигурации вне URL-адреса разъема.

Вы можете посмотреть /connector-plugins сервера Connect, чтобы увидеть то же самое.

Необходимо убедиться, что plugin.path настроен правильно для считывания как с /usr/share/java, так и с /usr/share/confluent-hub-components, чтобы увидеть как установленные, так и любые предустановленные соединители концентратора.

Те два, которые вы перечислили, являются частью переменной CLASSPATH, которую процесс Connect также получает

Примечание. Согласно документации Confluent, разъем GCS уже является частью образов Kafka Connect Docker.

...