У меня было изображение докера с Hadoop, Mesos, Marathon и Zookeeper. Я распространил это изображение по трем физическим узлам. Чтобы запустить этот образ, я написал докер с тремя службами Zookeeper, Mesos, Marathon. Я использовал WEAVE_CIDR для переплетения IP в файле compose. Я определил один и тот же IP-адрес для трех сервисов. Когда я запустил файл компоновки, Zookeeper работал нормально, но я получил ошибку при запуске Mesos из-за повторяющегося переплетения IP-адресов. Итак, я попытался объединить три сервиса в один сервис, чтобы использовать только один IP-адрес для трех из них. Мой новый docker compose выглядит следующим образом:
version: '3.7'
services:
zookeeper:
image: hadoop_marathon_mesos_flink_2
command: bash -c "echo zookeeper;
/home/zookeeper-3.4.14/bin/zkServer.sh restart;echo mesos;
sleep 30;/home/mesos-1.7.2/build/bin/mesos-master.sh;
echo marathon;/home/marathon-1.7.189-48bfd6000/bin/marathon"
privileged: true
network_mode: "bridge"
environment:
ZOOKEEPER_SERVER_ID: 1
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_INIT_LIMIT: 10
ZOOKEEPER_SYNC_LIMIT: 5
WEAVE_CIDR: 10.32.0.1/12
ZOOKEEPER_SERVERS: 10.32.0.1:2888:3888
MESOS_CLUSTER: MMM
LIBPROCESS_IP: 10.32.0.1
MESOS_QUORUM: 1
MESOS_LOG_DIR: /var/log/mesos
MESOS_WORK_DIR: /var/run/mesos
MESOS_EXECUTOR_REGISTRATION_TIMEOUT: 5mins
HOSTNAME: 10.32.0.1
MARATHON_ZK: zk://10.32.0.1:2181/marathon
MARATHON_MASTER: zk://10.32.0.1:2181/mesos
MESOS_NATIVE_JAVA_LIBRARY: /usr/local/lib/libmesos.so
MARATHON_HTTP_PORT: 8080
Mesos_HTTP_PORT: 5050
expose:
- 2181
- 2888
- 3888
- 5050
- 4040
- 7077
- 8080
ports:
- 2181:2181
- 2888:2888
- 3888:3888
- 5050:5050
- 4040:4040
- 7077:7077
- 8080:8080
networks:
default:
external:
name: weave
Когда я запускаю docker-compose up , Zookeeper и Mesos запускаются без ошибок; но марафон не запускается. Я хочу, чтобы Марафон проходил сразу после Месоса, но это не так. Пожалуйста, кто-нибудь скажет мне, что я делаю не так?
Любая помощь будет оценена.