Запуск приложения Spark Kill

103

У меня есть работающее приложение Spark, где оно занимает все ядра, а другим моим приложениям не будет выделено никаких ресурсов.

Я провел небольшое исследование, и люди предложили использовать YARN kill или / bin / spark-class, чтобы убить команду. Однако я использую версию CDH, а / bin / spark-class вообще не существует, приложение YARN kill тоже не работает.

введите описание изображения здесь

Может кто со мной с этим справится?

B.Mr.W.
источник
1
если вы находитесь в тестовой среде: ps aux | grep spark -> получить pid of spark и убить его из командной строки
eliasah
@eliasah "test env", мне уже раздали задание ..
B.Mr.W.
1
вы хотите убить работу на производстве ????
eliasah
1
@eliasah Ага ... работа в продакшене зависла из-за отказа одного хоста.
B.Mr.W.

Ответы:

216
  • скопируйте идентификатор приложения из планировщика искры, например application_1428487296152_25597
  • подключиться к серверу, на котором запущено задание
  • yarn application -kill application_1428487296152_25597
Джеральд Рейнхарт
источник
1
Как добраться до планировщика искры?
makansij
Он такой же, как web UI?
makansij
@Hunle Вы можете получить идентификатор из пользовательского интерфейса приложений Spark History UIYARN RUNNING( yarn-host: 8088 / cluster / apps / RUNNING ) или из Spark Job Web UIURL-адреса ( yarn-host: 8088 / proxy / application_ <timestamp> _ <id> )
C
2
можно убить сразу несколько: пряжа приложение-убить приложение_1428487296152_25597 приложение_1428487296152_25598 ... ??
user3505444
7

Получение всех идентификаторов приложений из YARN и уничтожение их одного за другим может занять много времени. Вы можете использовать цикл Bash for для быстрого и более эффективного выполнения этой повторяющейся задачи, как показано ниже:

Убейте все приложения на YARN, которые находятся в состоянии ACCEPTED:

for x in $(yarn application -list -appStates ACCEPTED | awk 'NR > 2 { print $1 }'); do yarn application -kill $x; done

Убейте все приложения на YARN, которые находятся в состоянии RUNNING:

for x in $(yarn application -list -appStates RUNNING | awk 'NR > 2 { print $1 }'); do yarn application -kill $x; done

Анил Кумар
источник
1

Это может быть неэтичным и предпочтительным решением, но оно помогает в средах, где вы не можете получить доступ к консоли, чтобы убить задание с помощью команды приложения yarn.

Шаги

Перейдите на главную страницу приложения искрового задания. Щелкните раздел вакансий. Щелкните активную стадию активного задания. Вы увидите кнопку «убить» рядом с активным этапом.

Это работает, если последующие этапы зависят от текущего этапа. Хотя он помечает работу как «Убита пользователем»

Сачин Гайквад
источник