web-dev-qa-db-ja.com

提出後にspark-submitを終了する方法

spark spark-submit(YARN mode)を使用するストリーミングプログラム)を送信するとき、ステータスをポーリングし続け、終了しません

送信後に終了するためのspark-submitのオプションはありますか?

===なぜこの問題が発生するのか===

ストリーミングプログラムは永久に実行され、ステータスの更新は必要ありません

手動で開始した場合、Ctrl + Cで停止できますが、開始するストリーミングコンテキストが多く、スクリプトを使用して開始する必要があります。

Spark-submitプログラムをバックグラウンドで配置できますが、多くのバックグラウンドJavaプロセスが作成されると、対応するユーザーは他のJavaを実行できなくなります= JVMがGCスレッドを作成できないため、プロセス

15
Peter Chan

面白い。私はこの問題について考えたことはありません。これを行うための明確な方法があるかどうかはわかりませんが、私は単にマシン上の送信プロセスを強制終了し、特に停止するまで、yarnジョブは実行を続けます。したがって、spark submitを実行してからそれを強制終了するスクリプトを作成できます。実際にジョブを停止したい場合は、yarn -killを使用してください。汚いが機能します。

1
z-star

これは古い質問ですが、--conf spark.yarn.submit.waitAppCompletion=falseを使用しているときにspark-submitを設定する方法があります。これにより、アプリケーションを正常に送信した後、クライアントは終了します。

YARNクラスターモードで、アプリケーションが完了するまでクライアントが終了を待機するかどうかを制御します。 trueに設定されている場合、クライアントプロセスはアプリケーションのステータスを報告し続けます。それ以外の場合、クライアントプロセスは送信後に終了します。

また、--deploy-modeclusterに設定する必要がある場合があります

クラスターモードでは、Sparkドライバーは、クラスター上のYARNによって管理されるアプリケーションマスタープロセス内で実行され、クライアントはアプリケーションを開始した後に離れることができます。

詳細は https://spark.Apache.org/docs/latest/running-on-yarn.html

70
Mateusz Dymczyk

コマンドtimeout TIME CMDはTIME後にCMDを閉じます

0
hustljian