Деталь: Мы Dockerized Kafka
, Cassandra
и Spark
, используя wurstmeister/kafka
, strapdata/elassandra
и bde2020/spark-master
изображения в docker-compose.
То, что мы хотим сделать, это подключить следующее с помощью соединителей:
Проблема в том, что мы не знаем, нормально ли это работает или нет, потому что эти технологии звучатНовое для нас.
Графическое представление:
Важные файлы:
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, но я не столкнулся с какой-либо ошибкой и не уверен, является ли она допустимой переменной окружения или нет!
Как мы можем проверить переменные среды и проверить работоспособность соединителей?