web-dev-qa-db-ja.com

Spark実行中のアプリケーションを強制終了

実行中のSparkアプリケーションがあり、他のアプリケーションにリソースが割り当てられないすべてのコアを占有しています。

私はいくつかの簡単な調査を行い、人々はYARN killまたは/ bin/spark-classを使用してコマンドを殺すことを提案しました。ただし、私はCDHバージョンを使用しており、/ bin/spark-classはまったく存在しません。YARNキルアプリケーションも機能しません。

enter image description here

これで私と一緒に誰でもできますか?

74
B.Mr.W.
  • sparkスケジューラからアプリケーションIDを過ぎてコピーします。たとえば、application_1428487296152_25597
  • ジョブを起動したサーバーに接続します
  • yarn application -kill application_1428487296152_25597
163

https://hadoop.Apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Application_State_API

PUT http:// {rm http address:port}/ws/v1/cluster/apps/{appid}/state

{
  "state":"KILLED"
}
2
Starwalker

YARNからすべてのアプリケーションIDを取得して、それらを1つずつ削除するのは時間がかかる場合があります。 Bash forループを使用して、以下に示すように、この反復タスクを迅速かつ効率的に実行できます。

受け入れられた状態にあるYARN上のすべてのアプリケーションを強制終了します。

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

YARNで実行状態にあるすべてのアプリケーションを強制終了します。

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

0
Anil Kumar K B