Как зарегистрировать контейнеры TaskManager в контейнере Job Manager для flink? - PullRequest
0 голосов
/ 20 марта 2020

Попытка поиграть с изображением flink docker в первый раз. Я следую инструкциям на https://hub.docker.com/_/flink, где написано

Вы можете запустить JobManager (мастер).

$ docker run --name flink_jobmanager -d -t flink jobmanager

Вы также можно запустить TaskManager (рабочий). Обратите внимание, что работникам необходимо зарегистрироваться в JobManager напрямую или через ZooKeeper, чтобы мастер начал отправлять им задачи для выполнения.

$ docker run --name flink_taskmanager -d -t flink taskmanager

Может кто-нибудь объяснить, как этот менеджер задач регистрируется с JobManager из этих команд?

Спасибо

1 Ответ

0 голосов
/ 20 марта 2020

Для запуска кластера Flink на Docker я настоятельно рекомендую использовать docker -compose, конфигурационный файл которого вы также можете найти здесь .

Если вы хотите настройте кластер Flink, используя docker вручную, затем вам нужно запустить контейнеры, чтобы они могли разрешать свои имена. Сначала вам нужно создать пользовательскую сеть с помощью

docker network create my-network

Затем вы должны запустить jobmanager с этой сетью и настроить имя и имя хоста на одно и то же. Таким образом, Flink свяжется с именем хоста, которое можно разрешить.

docker run --name jobmanager --hostname jobmanager --rm --net my-network -d -t flink jobmanager

И последнее, но не менее важное: нам нужно запустить taskmanager и сообщить ему имя JobManager. Это достигается установкой переменной среды JOB_MANAGER_RPC_ADDRESS в `jobmanager.

docker run --name taskmanager --net my-network -e JOB_MANAGER_RPC_ADDRESS=jobmanager -t -d flink taskmanager
...