-
Создал 2 виртуальных докер-машины (docker-machine create vmName)
-
Докер-файл
-
Создал образы на обеих машинах ("docker build -t spark-lab5-last ."), переключение между машинами: $ eval "$(docker-machine env VMNAME)" 3.1. чтобы не использовать докер-хаб и локальный репозиторий, но в то же время не использовать docker build на обеих машинах, можно сохранить образ как файл на одной машине "docer save -o PATH_TO_FILE IMAGE_NAME" и загрузить на другой "docker load -i PATH_TO_IMAGE"
-
init swarm: "docker swarm init" на master VM
-
подключить воркер-машину: docker swarm join --token SWMTKN-1-1da5t7bxt9a36avgprpaernb3fn2ncnsjd6lppcugeja37ta5a-90beq8otup0cdvecax8k9iwfm 192.168.99.100:2377 (токен, очевидно, будет другой)
-
Создал docker-compose
-
запустить docker stack: docker stack deploy -c docker-compose.yml spark-lab5-last
-
Необходимо понять, на какой докер-машине запущен контейнер с "мастером": "docker container ls"
-
поключиться к этой машине: "docker exec -it MASTER_CONTAINER_ID bash"
-
Standalone режим: /usr/local/scripts/standalone.sh
-
Yarn режим: /usr/local/scripts/yarn.sh
-
вывод результатов: /usr/local/scripts/print_results.sh
-
очистка и остановка: stop.sh
В stanalone режиме, чтобы запустить воркеров на другой (не мастере) докер-машине, необходимо:
-
удалить строку "start-saves.sh" из скрипта "standalone.sh" (sed -i s/start-slaves.sh/''/ standalone.sh)
-
запустить спарк-воркеров на воркер-машине: "$SPARK_HOME/sbin/start-slave.sh spark://spark-master:7077" (проверить, что воркер поднялся: http://192.168.99.101:8081/ )
-
запустить standalone.sh на мастер-машине
-
enjoy!
-
проверить состояние Spark: http://192.168.99.101:8080/
P.S. IP контейнеров может, конечно, отличаться