无法在 kafka connect docker 映像中运行 kafka connect datagen

Posted

技术标签:

【中文标题】无法在 kafka connect docker 映像中运行 kafka connect datagen【英文标题】:Unable to run kafka connect datagen inside kafka connect docker image 【发布时间】:2021-06-24 05:00:51 【问题描述】:

我正在尝试在 kafka-connect 容器中运行 kafka datagen 连接器,而我的 kafka 使用 https://github.com/confluentinc/kafka-connect-datagen/blob/master/Dockerfile-confluenthub 驻留在 AWS MSK 中。

我使用 kafdrop 作为 kafka 代理 (MSK) 的网络浏览器。我没有看到 Kafka 数据生成生成任何测试消息。 除了安装 kafka-datagen 连接器之外,我还需要做其他配置吗

另外,我如何在 confluentinc/kafka-connect 图像中检查创建了哪些主题以及是否使用了消息?

Dockerfile 看起来像:


ARG BASE_PREFIX=confluentinc 
ARG CONNECT_IMAGE=cp-kafka-connect

FROM $BASE_PREFIX/$CONNECT_IMAGE:6.1.0

ENV CONNECT_PLUGIN_PATH="/usr/share/java,/usr/share/confluent-hub-components"

RUN confluent-hub install --no-prompt confluentinc/kafka-connect-datagen:0.4.0
docker exec 51e32e20b292 bash -c 'echo $CONNECT_PLUGIN_PATH'                                           
shows : /usr/share/java,/usr/share/confluent-hub-components
[appuser@88db8385b575 ~]$ ls -la /usr/share/confluent-hub-components/
total 20
drwxr-xr-x 1 appuser appuser 4096 Mar 26 21:19 .
drwxr-xr-x 1 root    root    4096 Feb  4 21:10 ..
drwxr-xr-x 6 appuser appuser 4096 Mar 26 18:00 confluentinc-kafka-connect-datagen
[appuser@88db8385b575 ~]$ ls -la /usr/share/confluent-hub-components/confluentinc-kafka-connect-datagen/
total 28
drwxr-xr-x 6 appuser appuser 4096 Mar 26 18:00 .
drwxr-xr-x 1 appuser appuser 4096 Mar 26 21:19 ..
drwxr-xr-x 2 appuser appuser 4096 Mar 26 18:00 assets
drwxr-xr-x 4 appuser appuser 4096 Mar 26 18:00 doc
drwxr-xr-x 2 appuser appuser 4096 Mar 26 18:00 etc
drwxr-xr-x 2 appuser appuser 4096 Mar 26 18:00 lib
-rw-r--r-- 1 appuser appuser 1380 Mar 26 18:00 manifest.json

Docker 日志:

docker logs 51e32e20b292 | grep "DatagenConnector"  
        
    "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector",
    "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector",

【问题讨论】:

请显示您目前拥有的配置以及您的容器日志...而且您无需进入容器即可检查主题创建 你好@OneCricketeer 用配置和其他信息编辑了问题。 您是否真的发布了连接器配置?默认情况下它不运行。日志中有错误吗? 我刚刚在 dockerfile 中添加并在 dockerfile 中运行 RUN confluent-hub install --no-prompt confluentinc/kafka-connect-datagen:0.4.0。没有其他的。没有错误日志。 如何在容器内进行 POST。我想让所有东西都容器化,因为我的代理驻留在 MSK 中,而容器将驻留在 Fargate 中。 @OneCricketeer 【参考方案1】:

我刚刚添加了 dockerfile 并在 dockerfile 中运行了 RUN confluent-hub install --no-prompt confluentinc/kafka-connect-datagen:0.4.0。没有其他的。没有错误日志。

仅此一项不会运行连接器,只会使其可用于 Connect API。请注意文档 https://github.com/confluentinc/kafka-connect-datagen#run-connector-in-docker-compose

中的 curl 示例

所以,公开 8083 端口并请求添加连接器,并确保在运行容器时添加所有相关的环境变量

【讨论】:

以上是关于无法在 kafka connect docker 映像中运行 kafka connect datagen的主要内容,如果未能解决你的问题,请参考以下文章

Debezium:无法在 Kafka-Connect Docker 容器上设置观察程序。获取相关 ID 为 2 的元数据时出错 ... LEADER_NOT_AVAILABLE

使用 cp-kafka-connect-base 为 snowflake-kafka-connector 构建一个组合的 docker 映像,以部署在 kafka connect 集群上

是否有等效的 Debezium 命令可以在没有 Docker 容器的情况下启动 Kafka Connect

Kafka-connect,Bootstrap 代理断开连接

使用 Docker Compose 创建 Kafka-Connect 集群以供 ksqlDB 使用

Kafka Connect Cluster 不加载简单的连接器插件