Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在docker compose生成的kafka容器上安装kafkacat_Docker_Apache Kafka_Docker Compose_Kafkacat - Fatal编程技术网

如何在docker compose生成的kafka容器上安装kafkacat

如何在docker compose生成的kafka容器上安装kafkacat,docker,apache-kafka,docker-compose,kafkacat,Docker,Apache Kafka,Docker Compose,Kafkacat,我的背景是我正在尝试创建一个docker compose,它将启动几个容器来运行ELK+FileBeats和3个Kafka容器。整个docker compose及其yml配置文件可在中找到 对于sumarize,这是我的docker compose part下载并启动我的一个kafka容器: kafka1: image: wurstmeister/kafka command: [start-kafka.sh] depends_on: - zoo1

我的背景是我正在尝试创建一个docker compose,它将启动几个容器来运行ELK+FileBeats和3个Kafka容器。整个docker compose及其yml配置文件可在中找到

对于sumarize,这是我的docker compose part下载并启动我的一个kafka容器:

  kafka1:
    image: wurstmeister/kafka
    command: [start-kafka.sh]
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    links:
      - zoo1
      - zoo2
      - zoo3
    ports:
      - "9092:9092"
    environment:
      KAFKA_LISTENERS: PLAINTEXT://:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092
      KAFKA_BROKER_ID: 1
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_LOG_RETENTION_HOURS: "168"
      KAFKA_LOG_RETENTION_BYTES: "100000000"
      KAFKA_ZOOKEEPER_CONNECT:  zoo1:2181,zoo2:2181,zoo3:2181
      KAFKA_CREATE_TOPICS: "log:3:3"
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
我想用卡夫卡调查卡夫卡

C:\Dockers\megalog-try-1>docker exec -it megalog-try-1_kafka1_1 bash
bash-4.4# kafka-topics.sh --list --bootstrap-server localhost:9092
__consumer_offsets
log
bash-4.4# kafkacat -b megalog-try-1_kafka1_1:9092 L
bash: kafkacat: command not found
bash-4.4# apt-get install kafkacat
bash: apt-get: command not found
bash-4.4# exit
exit
编辑

安装kafkacat后的日志

/ # kafkacat -C -b localhost:9092 -t log -o beginning -f '\nKey (%K bytes): %k\t\nValue (%S bytes): %s\n\Partition: %p\t
Offset: %o\n--\n'
/bin/sh: kafkacat: not found
/ # apk --no-cache add ca-certificates wget
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
(1/1) Installing wget (1.20.3-r0)
Executing busybox-1.29.3-r10.trigger
OK: 359 MiB in 76 packages
/ # wget --quiet --output-document=/etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
/ # wget https://github.com/sgerrand/alpine-pkg-kafkacat/releases/download/1.5.0-r0/kafkacat-1.5.0-r0.apk
--2020-02-05 22:56:46--  https://github.com/sgerrand/alpine-pkg-kafkacat/releases/download/1.5.0-r0/kafkacat-1.5.0-r0.apk
Resolving github.com... 18.228.52.138
Connecting to github.com|18.228.52.138|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/120518176/95d10080-eee3-11e9-8e83-c0ba853d6714?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200206%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200206T131952Z&X-Amz-Expires=300&X-Amz-Signature=19d4778753313a7a535c3f8c10645e13851d482f49035903de83ba93c087a247&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dkafkacat-1.5.0-r0.apk&response-content-type=application%2Fvnd.android.package-archive [following]
--2020-02-05 22:56:46--  https://github-production-release-asset-2e65be.s3.amazonaws.com/120518176/95d10080-eee3-11e9-8e83-c0ba853d6714?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200206%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200206T131952Z&X-Amz-Expires=300&X-Amz-Signature=19d4778753313a7a535c3f8c10645e13851d482f49035903de83ba93c087a247&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dkafkacat-1.5.0-r0.apk&response-content-type=application%2Fvnd.android.package-archive
Resolving github-production-release-asset-2e65be.s3.amazonaws.com... 52.216.236.203
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com|52.216.236.203|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22602 (22K) [application/vnd.android.package-archive]
Saving to: 'kafkacat-1.5.0-r0.apk'

kafkacat-1.5.0-r0.apk         100%[=================================================>]  22.07K  --.-KB/s    in 0.1s

2020-02-05 22:56:48 (167 KB/s) - 'kafkacat-1.5.0-r0.apk' saved [22602/22602]

/ # apk add --no-cache kafkacat-1.5.0-r0.apk
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
(1/6) Installing lz4-libs (1.8.3-r2)
(2/6) Installing db (5.3.28-r1)
(3/6) Installing libsasl (2.1.27-r2)
(4/6) Installing librdkafka (0.11.6-r1)
(5/6) Installing yajl (2.1.0-r0)
(6/6) Installing kafkacat (1.5.0-r0)
Executing busybox-1.29.3-r10.trigger
OK: 361 MiB in 82 packages
/ # kafkacat -C -b localhost:9092 -t log -o beginning -f '\nKey (%K bytes): %k\t\nValue (%S bytes): %s\n\Partition: %p\t
Offset: %o\n--\n'
Error relocating /usr/bin/kafkacat: rd_kafka_fatal_error: symbol not found
/ # kafkacat -b megalog-try-1_kafka1_1:9092 L
Error relocating /usr/bin/kafkacat: rd_kafka_fatal_error: symbol not found
/ # kafka-topics.sh --list --bootstrap-server localhost:9092
__consumer_offsets
log
/ #
根据Cricket_007的建议编辑

docker-compose.yml仅编辑行

...
image: confluentinc/cp-kafka:latest
...
image: confluentinc/cp-zookeeper:latest
...
相关日志

卡夫卡:

===> Configuring ...
advertised.port is deprecated. Please use KAFKA_ADVERTISED_LISTENERS instead.
动物园管理员:

ZOOKEEPER_CLIENT_PORT is required.

Command [/usr/local/bin/dub ensure ZOOKEEPER_CLIENT_PORT] FAILED !
您必须使用apk在此kafka映像容器上安装任何包

此软件包的当前安装方法是使用wget或curl将其拉入,并使用apk安装本地文件:

apk --no-cache add ca-certificates wget
wget --quiet --output-document=/etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
wget https://github.com/sgerrand/alpine-pkg-kafkacat/releases/download/1.5.0-r0/kafkacat-1.5.0-r0.apk
apk add --no-cache kafkacat-1.5.0-r0.apk
您必须使用apk在此kafka映像容器上安装任何包

此软件包的当前安装方法是使用wget或curl将其拉入,并使用apk安装本地文件:

apk --no-cache add ca-certificates wget
wget --quiet --output-document=/etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
wget https://github.com/sgerrand/alpine-pkg-kafkacat/releases/download/1.5.0-r0/kafkacat-1.5.0-r0.apk
apk add --no-cache kafkacat-1.5.0-r0.apk
请改用卡夫卡听众

只需删除端口变量。你已经有了这个卡夫卡的听众:明文://kafka1:9092

ZOOKEEPER_客户端_端口是必需的

加上

ZOOKEEPER_客户端_端口:2181

您可以混合和匹配容器。。。我只是建议您在现有设置中使用现有的kafkacat容器,它可以连接到任何远程代理

或者在本地系统上安装kafkacat

请改用卡夫卡听众

只需删除端口变量。你已经有了这个卡夫卡的听众:明文://kafka1:9092

ZOOKEEPER_客户端_端口是必需的

加上

ZOOKEEPER_客户端_端口:2181

您可以混合和匹配容器。。。我只是建议您在现有设置中使用现有的kafkacat容器,它可以连接到任何远程代理


或者只在本地系统上安装kafkacat

为什么不使用confluent的kafkacat容器呢?我猜你的意思是用confluent/kafka替换wurstmeister/kafka,对吗?换言之,切换图像,对吗?如果是这样的话,我可以试试。@cricket_007现在我无法通过docker compose启动zookeeper和kafka容器。它似乎是合流的,wurstmeister有不同的参数名。我将在上面添加我在docker-compose.yml中所做的更改,以及kafka和Zookeeper的相关日志所有变量值都相同,但键可能不同。。。不合流/卡夫卡。那些是不推荐的。我想,confluentinc/cp卡夫卡塔。你可以和经纪人分开经营。。。因此,您可以保留wurstmeister并添加另一个rd_kafka_fatal_错误:未找到符号表示您的librdkafka版本太旧。您将需要librdkafka v1.0.0或更高版本,最好是v1.3.0。librdkafka RPM和DEB可从confluent获得,看看为什么不使用confluent的kafkacat容器?我猜你的意思是用confluent/kafka替换wurstmeister/kafka,对吗?换言之,切换图像,对吗?如果是这样的话,我可以试试。@cricket_007现在我无法通过docker compose启动zookeeper和kafka容器。它似乎是合流的,wurstmeister有不同的参数名。我将在上面添加我在docker-compose.yml中所做的更改,以及kafka和Zookeeper的相关日志所有变量值都相同,但键可能不同。。。不合流/卡夫卡。那些是不推荐的。我想,confluentinc/cp卡夫卡塔。你可以和经纪人分开经营。。。因此,您可以保留wurstmeister并添加另一个rd_kafka_fatal_错误:未找到符号表示您的librdkafka版本太旧。您将需要librdkafka v1.0.0或更高版本,最好是v1.3.0。librdkafka RPM和DEB可从confluent获得,请参见“谢谢”。重新定位/usr/bin/kafkacat:rd_kafka_fatal_错误:找不到符号时出错。我会在所有日志上面粘贴。注:你知道如何在我的docker-compose.yml中设置安装kafkacat的命令吗?否则,我将不得不在所有容器中手动安装。您可以使用kafka作为基本映像构建新的docker映像,然后使用Dockerfile运行上述命令,使用新构建的映像运行您的容器谢谢。重新定位/usr/bin/kafkacat:rd_kafka_fatal_错误:找不到符号时出错。我会在所有日志上面粘贴。注:你知道如何在我的docker-compose.yml中设置安装kafkacat的命令吗?否则,我将不得不在所有容器中手动安装。您可以使用kafka作为基本映像构建新的docker映像,然后使用Dockerfile运行上述命令,使用新构建的映像运行容器谢谢,现在我可以使用confluent映像重新启动kafka。顺便说一句,我还是不会用卡夫卡。以下是日志:kafkacat-C-b localhost:9092-t log-o开始-f'\n链接%K字节:%K\t\n值%S字节:%S\n\Partition:%p\tOffset:%o\n-\n'/bin/sh:1:kafkacat:
没有找到好的,在我从wurstmeister/kafka切换到confluentinc/cp kafka之后:最新的我现在有两个问题:我不能使用kafkacat这个现在对我来说最重要的工具,我不能使用apk安装kafkacat:apk-没有缓存添加ca证书wget/bin/sh:2:apk:找不到。我只是想看看我的卡夫卡主题中是否有一些内容。这就是我试图使用卡夫卡塔的原因。你将如何应对这一挑战?想象一下,你想分析某个卡夫卡主题,但你既不能使用卡夫卡,也不能成功安装它。融合图像是基于Debian而不是Alpine构建的。卡夫卡塔可能已经安装了。。。但如果不是,你会使用apt,而不是apk。但就像我说的,你可以使用一个完全独立的,额外的容器。。。另外,使用卡夫卡控制台消费者有什么问题?谢谢,现在我可以使用confluent image重新开始卡夫卡。顺便说一句,我还是不会用卡夫卡。这是日志:kafkacat-C-b localhost:9092-t log-o开头-f'\n key%K字节:%K\t\n值%S字节:%S\n\Partition:%p\tOffset:%o\n-\n'/bin/sh:1:kafkacat:not foundWell,在我从wurstmeister/kafka切换到confluentinc/cp kafka:latest之后,我现在有两个问题:我不能使用kafkacat这是我现在最重要的工具,我不能使用apk安装kafkacat:apk-没有缓存添加ca证书wget/bin/sh:2:apk:找不到。我只是想看看我的卡夫卡主题中是否有一些内容。这就是我试图使用卡夫卡塔的原因。你将如何应对这一挑战?想象一下,你想分析某个卡夫卡主题,但你既不能使用卡夫卡,也不能成功安装它。融合图像是基于Debian而不是Alpine构建的。卡夫卡塔可能已经安装了。。。但如果不是,你会使用apt,而不是apk。但就像我说的,你可以使用一个完全独立的,额外的容器。。。另外,使用卡夫卡控制台消费者有什么问题??