私のJavaアプリケーションはマッパー上で動作し、Qubole APIを使って子プロセスを作成します。アプリケーションは、子クォールクエリIDを格納します。終了する前にkillシグナルとシャットダウンの子プロセスを傍受する必要があります。 hadoop job -kill jobId
とコマンドがSIGKILLでジョブを強制終了していますが、シャットダウンの傍受方法がわかりません。何らかの形でジョブの強制終了を傍受するか、正常にシャットダウンするアプリケーションの機会を与えるためにhadoopを設定することは可能ですか?正常にhadoopジョブを殺す方法/ intercept `hadoop job -kill`
アプリケーションは、マッパーコンテナではなくローカルで実行しているときにShutdownHookを使用してシャットダウンを正常に傍受し、子プロセスを強制終了できます。
マッパーで実行中にシャットダウンを中断する方法を教えてください。あるいは何か間違っていますか?
シャットダウンフックが実行されていないことについては、アプリケーションがSIGKILLで強制終了されると予想されます(https://stackoverflow.com/questions/2541597/how-to-gracefully-handle-the-sigkill-signal- in-java)。私はあなたがSIGKILLを "扱う"ことができるとは思わない、リンクに記載されているように、あなたは仕事の状態を監視することができます。私が知る限り、これまでの仕事の「優雅な停止」を可能にするツールはありません。 – Adonis