我正在尝试创建一个基于移动事件的分析 Jmeter 板。我想将所有组件停靠到docker中的容器中,并在localhost中部署它,并创建一个分析 Jmeter 板。
太阳鸟遥测https://github.com/project-sunbird/sunbird-telemetry-service
Kafkahttps://github.com/wurstmeister/kafka-docker
Druidhttps://github.com/apache/incubator-druid/tree/master/distribution/docker
超集https://github.com/apache/incubator-superset
我做了什么
Druid
我执行了命令 docker build -t apache/incubator-druid:tag -f distribution/docker/Dockerfile .
我执行了命令 docker-compose -f distribution/docker/docker-compose.yml up
在一切都被打开之后http://localhost:4008/看到Druid在奔跑
完成构建和运行需要3.5小时
Kafka
导航到kafka文件夹 docker-compose up -d
执行了这个命令
问题
当我们执行druid时,一个zookeeper开始运行,当我们启动kafka时,docker文件启动另一个zookeeper,我无法在kafka和zookeeper之间建立连接。在我开始太阳鸟遥测,并试图创建主题和连接Kafka从太阳鸟它没有得到连接。
我不明白我做错了什么。我们能告诉Kafka分享由Druid创建的Zookeeper吗。我完全不熟悉这个环境和这些堆栈。我正在研究这个。我做错什么了吗。有谁能指出Kafka和Druid如何正确地联系在一起而不是docker。
note:- i 我在我的mac电脑里运行这些
我的Kafka文件
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
build: .
ports:
- "9092"
environment:
KAFKA_ADVERTISED_HOST_NAME:**localhost ip**
KAFKA_ZOOKEEPER_CONNECT:**localhost ip**:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
2条答案
按热度按时间vc6uscn91#
我们能告诉Kafka分享由Druid创建的Zookeeper吗
您可以将所有服务放在同一个compose文件中。
这里列出了Druid和Kafka的联系
https://github.com/apache/incubator-druid/blob/master/distribution/docker/environment#l31
你可以把Kafka设为同一个地址,是吗
例如,下载上面的文件并将Kafka添加到Druid合成文件中。。。
vulvrdjw2#
我们能告诉Kafka分享由Druid创建的Zookeeper吗
是的,因为有一个
zookeeper.connect
Kafka代理的设置,指定Kafka将尝试连接到的zookeeper地址。如何做到这一点完全取决于您使用的docker映像。例如,一个流行的图像wurstmeister/kafka docker通过将所有以kafka\开始的环境变量Map到代理设置并将它们添加到server.properties来实现这一点,这样KAFKA_ZOOKEEPER_CONNECT
成为zookeeper.connect
设置。我建议看一下官方文档,看看还可以配置什么。当我们启动Kafka时,docker文件启动另一个zookeeper
这是你的问题。是docker compose文件启动zookeeper,kafka,并将kafka配置为使用绑定的zookeeper。您需要通过移除绑定的zookeeper并将kafka配置为使用不同的zookeeper来修改它。理想情况下,应该有一个docker compose文件来启动整个设置。