почему stop-cluster.sh останавливает последний запущенный кластер Flink? - PullRequest
0 голосов
/ 30 августа 2018

Я планирую выполнить обновление с Flink 1.5.2 до 1.6.0, а затем выполнить миграцию заданий. Чтобы минимизировать время паузы для заданий, я планирую запустить оба кластера Flink одновременно, после успешного переноса заданий я остановлю старый. Однако когда я попытался остановить кластер Flink, запустив файл stop-cluster.sh в каталоге Flink1.5.2 / bin, я обнаружил, что остановленный кластер - это Flink 1.6.0 вместо ожидаемого Flink 1.5.2.

Я провел некоторый тест и обнаружил, что stop-cluster.sh просто останавливает последний запущенный кластер Flink, то есть сначала запускает кластер 1.6.0, затем запускает Flink 1.5.2, после этого при запуске stop -cluster.sh, он остановит Flink 1.5.2 во-первых, даже если вы запустите файл stop-cluster.sh в каталоге кластера 1.6.0 Flink1.6.0 / bin. Насколько я понимаю, при запуске stop-cluster.sh в Flink1.6.0 / bin он должен остановить кластер 1.6.0 и остановить кластер 1.5.2 при запуске stop-cluster.sh в Flink1.5.2 / bin Однако это не так.

Я провел некоторое исследование и обнаружил, что stop-cluster.sh завершит процесс на основе файла, содержащего pid, однако я не знаю, где находится этот файл, и я подозреваю, что оба кластера пишут pid в тех же местах, когда они начали, что делает stop-cluster.sh хаотичным.

Посоветуйте, пожалуйста, как остановить указанный кластер.

1 Ответ

0 голосов
/ 31 августа 2018

По умолчанию файл pid записывается в /tmp и имеет имя flink-<USER>-<FLINK_COMPONENT>.pid. Вы можете управлять каталогом, установив конфигурацию env.pid.dir в flink-conf.yaml. Используя разные каталоги pid-файлов, вы можете контролировать различные кластеры.

...