Подтвердить что ты не робот

Как выйти из spark-submit после подачи

При отправке программы искрообразования с использованием функции spark-submit (режим YARN) он продолжает проверять статус и никогда не выходит

Есть ли опция в spark-submit для выхода после отправки?

=== почему эта проблема меня ===

Программа потоковой передачи будет выполняться вечно, и мне не нужно обновление статуса

Я могу ctrl + c, чтобы остановить его, если я запускаю его вручную но у меня есть много потокового контекста для начала, и мне нужно запустить их с помощью script

Я могу поставить программу исправить-отправить в фоновом режиме, но после создания большого процесса java-процесса соответствующий пользователь не сможет запустить какой-либо другой Java-процесс, поскольку JVM не может создать поток GC

4b9b3361

Ответ 1

Интересно. Я никогда не думал об этой проблеме. Не уверен, что есть чистый способ сделать это, но я просто убиваю процесс отправки на машине, и работа с пряжей продолжает работать до тех пор, пока вы ее не остановите. Таким образом, вы можете создать script, которые выполняют иск, и затем убивают его. Когда вы действительно захотите остановить работу, используйте пряжу -kill. Грязный, но работает.

Ответ 2

Я знаю, что это старый вопрос, но есть способ сделать это сейчас, установив --conf spark.yarn.submit.waitAppCompletion=false когда вы используете spark-submit. При этом клиент выйдет после успешной подачи заявки.

В режиме кластера YARN контролирует, ожидает ли клиент выхода, пока приложение не завершит работу. Если установлено значение true, клиентский процесс будет оставаться в живых, сообщая о состоянии приложения. В противном случае клиентский процесс завершится после отправки.

Также вам может потребоваться установить --deploy-mode для cluster

В режиме кластера драйвер Spark запускается в главном процессе приложения, которым управляет YARN в кластере, и клиент может уйти после запуска приложения.

Больше на https://spark.apache.org/docs/latest/running-on-yarn.html

Ответ 3

команда timeout TIME CMD закроет CMD после TIME