You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Kafka容器的kafka-kinesis-connector配置运行疑问

本地Docker环境下Kinesis-Kafka连接器独立运行的问题

已完成操作

  • 配置并初始化AWS CLI
  • 安装Maven
  • 编译Kinesis-Kafka连接器
  • 配置classpath指向生成的jar包
  • 编写连接器属性文件

环境说明

通过docker-compose部署了Kafka、MQTT、Zookeeper等所有服务,全部为本地部署,上述操作均在本地主机而非Kafka容器内完成。

疑问

  1. 是否需要进入Kafka容器执行connect-standalone.sh脚本?但无法直接引用本地主机的文件路径:
    ./bin/connect-standalone.sh {{path_from_machine_where_jar_is}}/kinesis-kafka-connector/config/worker.properties {{path_from_machine_where_jar_is}}/kinesis-kafka-connector/config/kinesis-streams-kafka-connector.properties
    
  2. 是否需要在Kafka容器内重新执行所有前置步骤(编译连接器、配置文件等)?

解决方案

方案1:通过docker cp复制必要文件到Kafka容器(推荐)

无需在容器内重新编译,仅需将本地生成的jar包、配置文件复制到容器内:

  1. 获取Kafka容器ID:
    docker ps | grep kafka
    
  2. 在容器内创建连接器文件存放目录:
    docker exec -it <container_id> mkdir -p /opt/kafka/plugins/kinesis /opt/kafka/config/connectors
    
  3. 复制本地文件到容器:
    # 复制连接器jar包
    docker cp /path/to/your/kinesis-connector.jar <container_id>:/opt/kafka/plugins/kinesis/
    # 复制配置文件
    docker cp /path/to/worker.properties <container_id>:/opt/kafka/config/connectors/
    docker cp /path/to/kinesis-streams-kafka-connector.properties <container_id>:/opt/kafka/config/connectors/
    
  4. 进入容器启动连接器:
    docker exec -it <container_id> bash
    ./bin/connect-standalone.sh /opt/kafka/config/connectors/worker.properties /opt/kafka/config/connectors/kinesis-streams-kafka-connector.properties
    

方案2:通过Docker卷挂载本地文件到容器

修改docker-compose.yml中kafka服务的volumes配置,直接挂载本地文件目录到容器,避免手动复制:

kafka:
  image: wurstmeister/kafka:1.0.0
  container_name: kafka
  ports:
    - "9092:9092"
    - "9093:9093"
  volumes:
    - "kafka_data:/data"
    # 挂载本地连接器jar包目录到容器插件目录
    - /path/to/your/local/kinesis-jar-dir:/opt/kafka/plugins/kinesis
    # 挂载本地配置文件目录到容器配置目录
    - /path/to/your/local/config-dir:/opt/kafka/config/connectors
  environment:
    - KAFKA_ZOOKEEPER_CONNECT=10.0.0.129:2181
    - KAFKA_ADVERTISED_HOST_NAME=10.0.0.129
    - JMX_PORT=9093
    - KAFKA_ADVERTISED_PORT=9092
    - KAFKA_LOG_RETENTION_HOURS=1
    - KAFKA_MESSAGE_MAX_BYTES=10000000
    - KAFKA_REPLICA_FETCH_MAX_BYTES=10000000
    - KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS=60000
    - KAFKA_NUM_PARTITIONS=2
    - KAFKA_DELETE_RETENTION_MS=1000
  depends_on:
    - zookeeper
  restart: on-failure

修改后重启容器并启动连接器:

docker-compose down && docker-compose up -d
docker exec -it kafka bash
./bin/connect-standalone.sh /opt/kafka/config/connectors/worker.properties /opt/kafka/config/connectors/kinesis-streams-kafka-connector.properties

方案3:在本地主机直接运行连接器

若本地已安装Kafka客户端(包含connect-standalone.sh),可直接在本地启动,需满足:

  • worker.properties中bootstrap.servers配置为10.0.0.129:9092(Docker Kafka地址)
  • classpath已正确包含连接器jar包
  • 本地AWS CLI配置生效

直接执行命令:

/path/to/local/kafka/bin/connect-standalone.sh /path/to/worker.properties /path/to/kinesis-streams-kafka-connector.properties

关键注意事项

  • 容器内运行连接器时,需通过环境变量注入AWS凭证(在docker-compose中添加AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY)或复制本地AWS配置文件到容器
  • worker.properties中需配置plugin.path=/opt/kafka/plugins/kinesis,确保Kafka Connect能加载连接器

内容的提问来源于stack exchange,提问作者fneron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:15:42