细节:我们已经靠岸了 Kafka
, Cassandra
以及 Spark
,使用 wurstmeister/kafka
, strapdata/elassandra
以及 bde2020/spark-master
docker中的图像。
我们要做的是使用连接器连接以下各项:
Kafka流到Spark流
Spark流到Cassandra
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
但是我没有遇到任何错误,也不确定它是否是一个有效的环境变量!
如何验证环境变量并测试连接器是否正常工作?
1条答案
按热度按时间fruv7luv1#
如前所述,
CONNECTORS
不是kafka容器的有效变量。kafka connect是一个独立于代理的服务,因此需要是一个独立的容器。kafka connect在端口8083公开了restapi。
您需要使用
curl
Postman 等提供连接器;它们不能仅从变量加载。我不知道datamountainer容器需要什么特定属性,但它们是建立在合流图像之上的,您可以在这里找到所有这些环境变量-https://github.com/confluentinc/cp-docker-images/blob/5.1.2-post/examples/cp-all-in-one/docker-compose.yml#l64-l86型
这些是为Kafka容器,而不是Kafka连接,因为他们开始
KAFKA_
```