我在EC2机器上的docker容器内运行了一个融合的kafka集群,如下所示
以下是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
卡夫卡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连接器
一些帖子建议将实际的gcs jar文件移动到插件目录中,我试过没有运气。
另一件我无法理解的事情,在图片中你可以看到有2个连接器,control_center可以“看到”
我不确定control_center在哪里找到它们。
有人可以告诉我这里的配置错误吗?
提前致谢。
万一其他人偶然发现这样的问题......发生的事情是,运行kafka-connect的docker容器没有足够的资源来加载所有连接器,所以要么加载一些连接器,省略其余的,否则会耗尽资源并使主机无法访问。我希望Kafka Connect Logs能够反映连接器加载失败的事实。无论如何,由于我在EC2实例上运行我的设置,我所要做的就是升级我的实例大小,这解决了这个问题。谢谢!
控制中心可能不是问题,因此在连接器URL外部不需要任何配置。
您可以查找Connect服务器的/connector-plugins
以查看相同的内容。
您需要确保正确设置plugin.path
以从/usr/share/java
和/usr/share/confluent-hub-components
读取,以查看汇合的集线器安装的以及任何预安装的连接器。
你列出的那两个是CLASSPATH
变量的一部分,Connect过程也会接受
注意:根据Confluent文档,GCS连接器已经是Kafka Connect Docker映像的一部分。