如何将连接器安装到apachekafkaconnect的docker映像



我正在使用https://hub.docker.com/r/1ambda/kafka-connect/在ubuntu上安装docker kafka connect。我可以运行它,但我无法在其中安装更多连接器。

我尝试过的

1-我试图将连接器文件从我的机器复制到docker容器连接器文件夹并重新启动,但api,http://localhost:8080/connectors给出空数组。

2-还在connect-distributed.properties中添加了插件路径。怎么做到这一点??

不使用Confluent Hub的解决方案

步骤1:构建自己的Kafka Connect镜像

你的目录应该是这样的:

my-directory /
Dockerfile
plugins /
my-connector /
<connector-jars>

Dockerfile:

FROM confluentinc/cp-kafka-connect-base:latest
USER root:root
COPY ./plugins/ /opt/kafka/plugins/
ENV CONNECT_PLUGIN_PATH="/opt/kafka/plugins"
USER 1001

运行以下

cd /my-directory
sudo docker build . -t my-connector-image-name

步骤2:将创建的图像用于您的kafka连接容器

version: '3'
services:
zookeeper:
container_name: 'zookeeper'
image: 'bitnami/zookeeper:latest'
ports:
- '2181:2181'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
kafka:
image: 'bitnami/kafka:latest'
container_name: 'kafka'
ports:
- '9092:9092'
environment:
- KAFKA_BROKER_ID=1
- KAFKA_LISTENERS=PLAINTEXT://:9092
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.178.70:9092
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
- zookeeper
kafka-connect:
image: 'my-connector-image-name:latest'
container_name: 'kafka-connect'
ports:
- '8083:8083'
environment:
- CONNECT_BOOTSTRAP_SERVERS=kafka:9092
- CONNECT_REST_PORT=8083
- CONNECT_GROUP_ID=quickstart
- CONNECT_CONFIG_STORAGE_TOPIC=quickstart-config
- CONNECT_OFFSET_STORAGE_TOPIC=quickstart-offsets
- CONNECT_STATUS_STORAGE_TOPIC=quickstart-status
- CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=1
- CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR=1
- CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=1
- CONNECT_KEY_CONVERTER=org.apache.kafka.connect.json.JsonConverter
- CONNECT_VALUE_CONVERTER=org.apache.kafka.connect.json.JsonConverter
- CONNECT_INTERNAL_KEY_CONVERTER=org.apache.kafka.connect.json.JsonConverter
- CONNECT_INTERNAL_VALUE_CONVERTER=org.apache.kafka.connect.json.JsonConverter
- CONNECT_REST_ADVERTISED_HOST_NAME=localhost
depends_on:
- kafka

步骤3获取可用的连接器插头

curl localhost:8083/connector-plugins | json_pp

关于我的Kafka配置的附带说明:我在Linux中托管Docker我已分配IP 192.168.178.70的虚拟机。

该图像似乎没有更新为使用plugin.path,因为它使用的是Kafka 0.10

您可以使用confluent-hub来安装连接器,就像我在Connect容器中记录的那样

https://github.com/OneCricketeer/apache-kafka-connect-docker

1-我试图将连接器文件从我的机器复制到docker容器连接器文件夹并重新启动,但api,http://localhost:8080/connectors给出空数组。

localhost:8083/connectors,将为您提供活动连接器的列表。如果你需要检查可用插件的列表,你应该点击localhost:8083/connector-plugins-

curl localhost:8083/connector-plugins
[{"class":"io.confluent.connect.activemq.ActiveMQSourceConnector","type":"source","version":"5.5.1"},{"class":"io.confluent.connect.elasticsearch.ElasticsearchSinkConnector","type":"sink","version":"5.5.1"},{"class":"io.confluent.connect.ibm.mq.IbmMQSourceConnector","type":"source","version":"5.5.1"},{"class":"io.confluent.connect.jdbc.JdbcSinkConnector","type":"sink","version":"5.5.1"},
{"class":"io.confluent.connect.jdbc.JdbcSourceConnector","type":"source","version":"5.5.1"},{"class":"io.confluent.connect.jms.JmsSourceConnector","type":"source","version":"5.5.1"},{"class":"io.confluent.connect.s3.S3SinkConnector","type":"sink","version":"5.5.1"},{"class":"io.confluent.connect.storage.tools.SchemaSourceConnector","type":"source","version":"5.5.1-ccs"},{"class":"io.confluent.kafka.connect.datagen.DatagenConnector","type":"source","version":"null"},{"class":"org.apache.kafka.connect.file.FileStreamSinkConnector","type":"sink","version":"5.5.1-ccs"}, 
{"class":"org.apache.kafka.connect.file.FileStreamSourceConnector","type":"source","version":"5.5.1-ccs"},{"class":"org.apache.kafka.connect.mirror.MirrorCheckpointConnector","type":"source","version":"1"},{"class":"org.apache.kafka.connect.mirror.MirrorHeartbeatConnector","type":"source","version":"1"},{"class":"org.apache.kafka.connect.mirror.MirrorSourceConnector","type":"source","version":"1"}]

此外,需要在所有工作节点的上述插件路径中添加一个新的连接器,并且需要重新启动所有

若要进一步进行故障排除,可以尝试将日志级别增加到DEBUG,并在遍历连接器路径时检查启动日志您将看到以下格式的日志:

DEBUG Loading plugin urls: ......

希望这有助于解决您的问题:(

相关内容

  • 没有找到相关文章

最新更新