spark spark-submit(YARN mode)を使用するストリーミングプログラム)を送信するとき、ステータスをポーリングし続け、終了しません
送信後に終了するためのspark-submitのオプションはありますか?
===なぜこの問題が発生するのか===
ストリーミングプログラムは永久に実行され、ステータスの更新は必要ありません
手動で開始した場合、Ctrl + Cで停止できますが、開始するストリーミングコンテキストが多く、スクリプトを使用して開始する必要があります。
Spark-submitプログラムをバックグラウンドで配置できますが、多くのバックグラウンドJavaプロセスが作成されると、対応するユーザーは他のJavaを実行できなくなります= JVMがGCスレッドを作成できないため、プロセス
面白い。私はこの問題について考えたことはありません。これを行うための明確な方法があるかどうかはわかりませんが、私は単にマシン上の送信プロセスを強制終了し、特に停止するまで、yarnジョブは実行を続けます。したがって、spark submitを実行してからそれを強制終了するスクリプトを作成できます。実際にジョブを停止したい場合は、yarn -killを使用してください。汚いが機能します。
これは古い質問ですが、--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
コマンドtimeout TIME CMD
はTIME後にCMDを閉じます