У меня три физических узла с установленным докером. У меня есть один докер-контейнер с Mesos, Marathon, Hadoop и Flink. Я настроил главный узел и подчиненные узлы для Mesos, Zookeeper и Marathon. Я делаю эти работы шаг за шагом.
Во-первых, в главном узле я вхожу в докер-контейнер с этой командой:
docker run -v /home/user/.ssh:/root/.ssh --privileged -p 5050:5050 -p 5051:5051 -p 5052:5052 -p 2181:2181 -p 8082:8081 -p 6123:6123 -p 8080:8080 -p 50090:50090 -p 50070:50070 -p 9000:9000 -p 2888:2888 -p 3888:3888 -p 4041:4040 -p 7077:7077 -p 52222:22 -e WEAVE_CIDR=10.32.0.2/12 -e MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins -e LIBPROCESS_IP=10.32.0.2 -e MESOS_RESOURCES=ports*:[11000-11999] -ti hadoop_marathon_mesos_flink_2 /bin/bash
Затем запустите Mesos и Zookeeper:
/home/zookeeper-3.4.14/bin/zkServer.sh restart
/home/mesos-1.7.2/build/bin/mesos-master.sh --ip=10.32.0.1 --hostname=10.32.0.1 --roles=marathon,flink --quorum=1 --work_dir=/var/run/mesos --log_dir=/var/log/mesos
После этого запустите Marathon в том же контейнере:
/home/marathon-1.7.189-48bfd6000/bin/marathon --master 10.32.0.1:5050 --zk zk://10.32.0.1:2181/marathon --hostname 10.32.0.1 --webui_url 10.32.0.1:8080 --logging_level debug
И, наконец, я запускаю hadoop:
/opt/hadoop/sbin/start-dfs.sh
Марафон, Mesos и Hadoop запускаются без проблем.
Самая важная часть моей работы - это бег Flink in Marathon. Я настроил Flink в Docker-контейнере так:
env.java.home: /opt/java
jobmanager.rpc.address: 10.32.0.1
high-availability: zookeeper
high-availability.storageDir: hdfs:///flink/ha/
high-availability.zookeeper.quorum: 10.32.0.1:2181,10.32.0.2:2181
recovery.zookeeper.path.mesos-workers: /mesos-workers
В пользовательском интерфейсе Marathon я создаю приложение и помещаю в него этот файл JSON, но он не работает.
{
"id": "flink",
"cmd": "/home/flink-1.7.0/bin/mesos-appmaster.sh
-Dmesos.master=10.32.0.1:5050,10.32.0.2:5050
-Dmesos.initial-tasks=1",
"cpus": 1.0,
"mem": 1024
}
Flink приложение не удалось в Mesos UI. Это показывает эту ошибку:
I0428 06: 01: 39.586699 6155 exec.cpp: 162] Версия: 1.7.2
I0428 06: 01: 39.596458 6154 exec.cpp: 236] Исполнитель зарегистрирован на агенте 984595ae-e811-48fb-a9f5-ca6128e1cc1a-S0
I0428 06: 01: 39.598870 6157 executor.cpp: 188] Получено ПОДПИСАННОЕ событие
I0428 06: 01: 39.599761 6157 executor.cpp: 192] Подписчик исполнитель 10.32.0.3
I0428 06: 01: 39.599963 6157 executor.cpp: 188] Получено событие LAUNCH
I0428 06: 01: 39.601236 6157 executor.cpp: 697] Запуск задачи flink.16a7cc18-697b-11e9-928f-ce235caa831e
I0428 06: 01: 39.613719 6157 executor.cpp: 712] Разветвленная команда в 6163
I0428 06: 01: 39.787395 6157 executor.cpp: 1013] Команда вышла со статусом 1 (pid: 6163)
I0428 06: 01: 40.791885 6162 process.cpp: 927] Остановлен цикл приема сокета
Странно то, что в STDout я вижу этот текст; хотя я установил JAVA_HOME в / etc / environment и flink-conf.yam .
Пожалуйста, укажите JAVA_HOME. Либо в конфигурации Flink ./conf/flink-conf.yaml, либо в виде общесистемного JAVA_HOME.
Не могли бы вы сказать мне, что я должен сделать для этой проблемы?
Большое спасибо.