昨日、私はoozieワークフローを開始しました。それは一日中行き詰まった2つの仕事を始めました。私は今朝、テストしたい変更を加えて、彼らを殺しました。2つのジョブを強制終了した後、ワークフローが停止し、現在進行中のようです。ワークフローを強制終了したいので、強制終了したワークフローを置き換えるために新しいジョブを開始し続けることはありません。oozieコマンドラインでそれを行うにはどうすればよいですか?
4 に答える
Oozieコマンド
--------------
注:oozieサーバーとポートをクラスター固有のものに置き換えてください。
1)ジョブの送信:
$ oozie job -oozie http://localhost:11000/oozie -config oozieProject/workflowHdfsAndEmailActions/job.properties -submit job: 0000001-130712212133144-oozie-oozi-W
2)ジョブの実行:
$ oozie job -oozie http://localhost:11000/oozie -start 0000001-130712212133144-oozie-oozi-W
3)ステータスの確認:
$ oozie job -oozie http://localhost:11000/oozie -info 0000001-130712212133144-oozie-oozi-W
4)ワークフローの一時停止:
$ oozie job -oozie http://localhost:11000/oozie -suspend 0000001-130712212133144-oozie-oozi-W
5)ワークフローの再開:
$ oozie job -oozie http://localhost:11000/oozie -resume 0000001-130712212133144-oozie-oozi-W
6)ワークフローの再実行:
$ oozie job -oozie http://localhost:11000/oozie -config oozieProject/workflowHdfsAndEmailActions/job.properties -rerun 0000001-130712212133144-oozie-oozi-W
7)ジョブを強制終了する必要がある場合:
$ oozie job -oozie http://localhost:11000/oozie -kill 0000001-130712212133144-oozie-oozi-W
8)サーバーログの表示:
$ oozie job -oozie http://localhost:11000/oozie -logs 0000001-130712212133144-oozie-oozi-W
ログで入手できます:
/var/log/oozie on the Oozie server
。
次のコマンドで実行中のジョブを表示できます。
oozie jobs
または、ワークフローではなくコーディネーターの場合:
oozie jobs -jobtype coordinator
そして、そこからジョブIDを取得し、次のようにします。
oozie job -kill [id]
コマンドラインツールのリファレンスページは次のとおりです。http://incubator.apache.org/oozie/docs/3.1.3/docs/DG_CommandLineTool.html
Oozieコマンドに関連する投稿に加えて、一時停止/強制終了などのためにそれぞれのワークフローIDにアクセスする必要がない場合があり、以下のエラーが発生します。
Error: E0508 : E0508: User [?] not authorized for WF job [0001304-190209190348229-oozie-mapr-W]
このため、kill / suspendなどの操作を実行するには、ユーザーIDの認証トークンを生成する必要があります。このためには、最初に、以下のコマンドを使用してファイルから既存のトークンをクリアしてから、指定されたワークフローIDに対してサスペンド/キルなどのアクションを実行する必要があります。
rm .oozie-auth-token
Apache Oozieドキュメントから:
認証が正常に実行されると、受信した認証トークンは、所有者のみのアクセス許可を持つ.oozie-auth-tokenファイルのユーザーホームディレクトリにキャッシュされます。後続のリクエストは、有効な間、キャッシュされたトークンを再利用します。
詳細については、Apache Oozieドキュメントのリンク(認証セクションを参照): 公式ドキュメント
bashを使用して、複数の(例200)ジョブを同時に強制終了または再実行する方法が役立つと思います。
1行で:
$for jobid in `oozie jobs -filter status=SUSPENDED | cut -d" " -f1`; do echo "Killed job ${jobid}"; job -kill ${jobid}; done