【发布时间】:2023-03-10 05:15:02
【问题描述】:
详细信息:我们在 docker-compose 中使用了wurstmeister/kafka、strapdata/elassandra 和bde2020/spark-master 对Kafka、Cassandra 和Spark 进行了dockerized。
我们要做的是使用连接器连接以下内容:
Kafka 流到 Spark 流
向 Cassandra 发送 Spark 流
Kafka 流到 Cassandra
问题是我们不知道它是否正常工作,因为这些技术对我们来说听起来很新鲜。
图形表示:
重要文件:
docker-compose.yml
version: '2'
services:
spark:
container_name: spark
image: bde2020/spark-master
ports:
- 9180:8080
- 9177:7077
- 9181:8081
links:
- elassandra
volumes:
hosein:/var/lib/docker/volumes/data/python
- /home/mostafa/Desktop/kafka-test/together/cassandra/mostafa-hosein:/var/lib/docker/volumes/data/python
elassandra:
image: strapdata/elassandra
container_name: elassandra
build: /home/mostafa/Desktop/kafka-test/together/cassandra
env_file:
- /home/mostafa/Desktop/kafka-test/together/cassandra/conf/cassandra.env
volumes:
- /home/mostafa/Desktop/kafka-test/together/cassandra/jarfile:/var/lib/docker/volumes/data/_data
ports:
- '7000:7000'
- '7001:7001'
- '7199:7199'
- '9042:9042'
- '9142:9142'
- '9160:9160'
- '9200:9200'
- '9300:9300'
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"
kafka:
build: .
container_name: kafka
links:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_OPTS: -javaagent:/usr/app/jmx_prometheus_javaagent.jar=7071:/usr/app/prom-jmx-agent-config.yml
CONNECTORS: elassandra
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- elassandra
kafka_connect-cassandra:
image: datamountaineer/kafka-connect-cassandra
container_name: kafka-connect-cassandra
ports:
- 8083:8083
- 9102:9102
environment:
- connect.cassandra.contact.points=localhost
- KAFKA_ZOOKEEPER_CONNECT = "zookeeper:2181"
- KAFKA_ADVERTISED_LISTENERS= "kafka:9092"
- connect.cassandra.port=9042
- connector.class=com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraSinkConnector
- tasks.max=1
depends_on:
- kafka
- elassandra
Dockerfile
FROM wurstmeister/kafka
ADD prom-jmx-agent-config.yml /usr/app/prom-jmx-agent-config.yml
ADD jmx_prometheus_javaagent-0.10.jar /usr/app/jmx_prometheus_javaagent.jar
COPY wait-for-it.sh /wait-for-it.sh
RUN chmod +x /wait-for-it.sh
CMD ["/wait-for-it.sh", "zookeeper:2181", "--", "start-kafka.sh"]
示例:作为示例,我已将CONNECTOR: elassandra 添加到 kafka 容器的环境变量中,但我没有遇到任何错误,并且不确定它是否是有效的环境变量!
我们如何验证环境变量并测试连接器是否正常工作?
【问题讨论】:
-
CONNECTORS对 kafka 容器没有任何作用... Kafka Connect 必须是一个单独的容器 -
@cricket_007 我发现一张没有任何有用文档的图片,我的意思是datamountaineer/kafka-connect-cassandra。您知道如何使用此图像将 kafka 连接到 cassandra 吗?因为我已经分别运行了 kafka 和 cassandra 图像。
-
我没用过那个。我通常使用 confluentinc 图像,但我认为这些图像不包括 Cassandra。没有 Docker 的文档在这里 docs.lenses.io/connectors/sink/cassandra.html 但 Kafka Connect API 本身可以在 Apache 或 Confluent 站点上找到
-
@cricket_007 confluentinc 图像在 docker hub 上找不到了!
-
你最近检查过那个链接吗@RobinMoffatt?我面临页面未找到错误!
标签: apache-spark cassandra apache-kafka docker-compose connector