kafka_connect找不到其连接器

时间:2019-04-03 17:07:47

标签: docker apache-kafka-connect confluent control-center

我有一个融合的kafka集群,如下所示在EC2计算机上的docker容器中运行

  • 在3个单独的EC2实例上的docker容器,用于动物园管理员和kafka经纪人
  • 在单独的EC2实例上的1个docker容器用于
    confluent_control_center
  • 在上述控制中心为kafka_connect运行的同一EC2实例上的1个docker容器

以下是 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

但是,当我启动容器时,通过使用此方法到达kafka-connect rest api,我也看不到 gcs

http://kafka_connect_ec2:8083/connectors

以上返回空列表[]

我也无法在control_center中看到 gcs 连接器

enter image description here

有些帖子建议将实际的gcs jar文件移动到插件目录中,但我没有运气尝试过。

我无法理解的另一件事,在图片中,您可以看到 control_center 可以“看到”的两个连接器

  • SchemaSourceConnector
  • FileStreamSourceConnector

我不确定 control_center 在哪里找到这些

有人可以告诉我这里配置错误吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

万一有人偶然发现这样的问题... 发生的事情是,运行kafka-connect的docker容器没有足够的资源来加载所有连接器,因此它将要么加载某些连接器而忽略其余连接器,要么耗尽资源并成为主机无法到达。我希望Kafka Connect日志能反映出连接器加载失败的事实。 无论如何,由于我是在EC2实例上运行安装程序,所以我要做的就是升级实例大小,这解决了问题。 谢谢!

答案 1 :(得分:1)

控制中心可能不是问题,因此在连接器URL之外无需进行任何配置。

您可以在Connect服务器上查找/connector-plugins,以查看相同的内容。

您需要确保正确设置plugin.path以便从/usr/share/java/usr/share/confluent-hub-components中读取,以查看融合的集线器已安装的集线器和任何预安装的连接器。

您列出的那两个是CLASSPATH变量的一部分,Connect进程也会使用该变量

注意:根据Confluent文档,GCS连接器已经是Kafka Connect Docker映像的一部分。