Spark Kill Runningアプリケーション


101

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

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

ここに画像の説明を入力してください

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


1
テスト環境にいる場合:ps aux | grep
spark-

@eliasah「テストENV」、私にジョブがすでに配布されて...
B.Mr.W.

1
あなたは生産中の仕事を殺したいですか????
eliasah 2015

1
@eliasahええ...あるホストでの障害により、本番環境のジョブがハングしました。
B.Mr.W.

回答:


213
  • アプリケーションIDを越えてスパークスケジューラからコピーします。たとえば、application_1428487296152_25597
  • ジョブを起動したサーバーに接続する
  • yarn application -kill application_1428487296152_25597

1
どのようにしてスパークスケジューラにアクセスしますか?
makansij 2016

それは同じweb UIですか?
makansij

あなたはからIDを取得することができます@Hunle Spark History UIまたは糸はRUNNINGUI(アプリ糸ホスト:8088 /クラスター/アプリケーション/ RUNNING)またはからSpark Job Web UIURL(糸ホスト:8088 /プロキシ/ application_ <タイムスタンプ> _ <ID>
CᴴᴀZ

2
一度に複数を殺すことができます:yarn application -kill application_1428487296152_25597 application_1428487296152_25598 ... ??
user3505444

6

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

ACCEPTED状態の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



1

これは倫理的で望ましい解決策ではないかもしれませんが、コンソールにアクセスして、yarnアプリケーションコマンドを使用してジョブを強制終了できない環境で役立ちます。

ステップは

スパークジョブのアプリケーションマスターページに移動します。ジョブセクションをクリックします。アクティブなジョブのアクティブなステージをクリックします。アクティブなステージのすぐ横に「キル」ボタンが表示されます。

これは、後続のステージが現在実行中のステージに依存している場合に機能します。それは仕事を「ユーザーによって殺された」としてマークしますが

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.