このトピックでは、期待どおりに実行されないノードのトラブルシューティング方法について説明します。
制限事項
自動スケジューリングは、DataWorks の本番環境のオペレーションセンターでのみサポートされています。ノードが本番環境に公開されていることを確認してください。詳細については、「タスクの公開」をご参照ください。
ノードの実行条件
オペレーションセンターでは、インスタンスはさまざまなステータスで識別されます。
スケジュールされたノードは、スケジューリングリソースが利用可能である、スケジューリング時刻に達している、すべての先祖ノードが正常に実行されている、ノードのスケジューリングが一時停止またはフリーズされていない、というすべての条件を満たした場合にのみ実行されます。
|
番号 |
ステータス |
アイコン |
フローチャート |
|
1 |
実行成功 |
|
|
|
2 |
未実行 |
|
|
|
3 |
実行失敗 |
|
|
|
4 |
実行中 |
|
|
|
5 |
時間待ち |
|
|
|
6 |
フリーズ |
|
- パープル (凍結): インスタンスは凍結されています。ノードは実行されず、その下流ノードをブロックします。詳細を展開 > Operation Logs をクリックして、関連レコードを表示できます。
- 詳細を展開Attribute黄 (待機中):ノードはスケジューリング時刻を待っています。右下の をクリックし、 タブで詳細情報を確認します。説明
- Waiting for Resourcesステータスが の場合、現在のプロジェクトで実行中のノード数が上限に達しています。インスタンスを右クリックし、インスタンス診断ペインのスケジューリングリソースセクションで、どのノードがリソースを消費しているかを確認できます。詳細については、「リソース待ち」をご参照ください。
- ステータスが Waiting for Scheduling Time の場合、インスタンスのスケジューリング時間にまだ達していません。
- グレー (未実行): グレーのインスタンスを右クリックして、その先祖ノードのステータスを確認します。Run Diagnostics と アップストリーム分析 を使用します。
- 青 (実行中):インスタンスは実行中です。ノードが長期間実行されても成功しない場合は、「リソース待ち」をご参照ください。説明 先祖ノードが前述のどの状態でもなく、ワークフロー全体が灰色の場合、先祖ノードの依存関係が変更され、ワークフローが孤立している可能性があります。詳細については、「シナリオ:孤立ノード」をご参照ください。
実行が遅延する理由
- 現象
自動トリガーインスタンスが実行される際、そのスケジューリング時刻と実際の開始時刻が異なる場合があります。ノードは、スケジューリング時刻を過ぎても実行されないことがあります。
例えば、ある ODPS SQL ノードインスタンスのスケジューリング時刻が2022-04-07 00:08:00、リソース待ち開始時刻が2022-04-07 00:59:50、開始時刻が2022-04-07 01:21:02であったとします。このインスタンスはリソースを 21 分 12 秒待機しており、3 つのタイムスタンプ間に大きな時間差があることがわかります。 - トラブルシューティングまず、先祖ノード解析機能を使用して、現在のノードをブロックしているキーインスタンスを特定します。次に、インテリジェント診断を使用してノードがブロックされている理由を分析し、問題を迅速に特定します。DataWorks のノードが実行されない一般的な理由は 4 つあります。以下の例では、説明のために 3 階層の依存関係を使用します。このロジックは、より複雑な依存関係にも適用されます。
- Not Runシナリオ 1:すべての先祖ノードが正常に実行されていない (ノードステータス:灰色 )。
シナリオ:現在の時刻が 01:00 であると仮定します。ノード A2 は 01:00 に、ノード A3 は 03:00 に、ノード B は 00:00 にスケジュールされています。ノード B はノード A2 と A3 に依存しています。
分析: ノード B のスケジューリング時間 (00:00) はすでに過ぎています。しかし、その先祖ノードがまだスケジューリング時間に達していないため、ノード B は、ノード A2 とノード A3 の両方が実行に成功するまで待機する必要があります。A2 または A3 のいずれかが失敗した場合、ノード B は実行されません。したがって、ノード B の現在のインスタンスステータスは Not Run です。
結論:ノードは、すべての先祖ノードが正常に実行された後にのみ実行されます。
説明 先祖ノードが長期間実行中のままである場合は、以下のソリューションをご参照ください。- 非バッチ同期ノードが実行中のままで、具体的な原因を特定したい場合は、DingTalk でサポートを受けてください。まず、こちらのリンクをクリックして「Alibaba Cloud Big Data & AI Platform」グループに参加します。次に、QR コードをスキャンして DataWorks プロダクトグループに参加し、インテリジェントアシスタントまたは担当者に問い合わせることができます。

- バッチ同期ノードが実行中のままである場合、実行リソースを長時間待機しているか、一部のロジックの処理が遅い可能性があります。詳細については、「長時間実行されるバッチ同期ノードのトラブルシューティング方法」をご参照ください。
- 非バッチ同期ノードが実行中のままで、具体的な原因を特定したい場合は、DingTalk でサポートを受けてください。まず、こちらのリンクをクリックして「Alibaba Cloud Big Data & AI Platform」グループに参加します。次に、QR コードをスキャンして DataWorks プロダクトグループに参加し、インテリジェントアシスタントまたは担当者に問い合わせることができます。
- Waiting for Scheduling Timeシナリオ 2:ノードのスケジューリング時刻に達していない (ノードステータス:黄色 )。
シナリオ:現在の時刻が 04:00 であると仮定します。ノード A2 は 01:00 に、ノード A3 は 03:00 に、ノード B は 05:00 にスケジュールされています。ノード B はノード A2 と A3 に依存しています。
分析:先祖ノード A2 と A3 はすでに正常に実行されています。しかし、ノード B のスケジューリング時間 (05:00) がまだ到来していないため、現在のインスタンスステータスは Waiting for Scheduling Time です。
結論:ノードは、そのスケジューリング時刻に達した後にのみ実行されます。
- Waiting for Resourcesシナリオ 3:プロジェクトのスケジューリングリソースが不足している (ノードステータス:黄色 )。
シナリオ:現在の時刻が 04:00 であると仮定します。ノード A2 は 01:00 に、ノード A3 は 03:00 に、ノード B は 00:00 にスケジュールされています。ノード B はノード A2 と A3 に依存しています。
分析: ノード B のスケジューリング時間は経過し、その先祖ノードである A2 と A3 は正常に実行されました。しかし、ノードのリソースグループのリソースが不足しているため、ノードは実行に必要なスケジューリングリソースを取得できません。このため、現在のインスタンスステータスは Waiting for Resources となっています。
結論:ノードは、十分なスケジューリングリソースが利用可能な場合にのみ実行されます。(ノードがリソース待ち状態にある場合、ログにはプロジェクト内のノードの同時実行数の上限に達し、ノードがゲートウェイリソースを待機していることが示されます。)
説明 ノードが専用リソースグループで実行されている場合、DataWorks コンソールで専用リソースグループを表示できます。リソースグループで実行中のノードとリソースのウォーターマークを確認してください。または、インスタンスを右クリックし、インテリジェント診断機能を使用して、現在のノードが待機中にどのノードがリソースを消費しているかを確認することもできます。詳細については、「リソース待ち」をご参照ください。 - シナリオ 4:ノードがフリーズしている (ノードステータス:紫色 [フリーズ])。
シナリオ:現在の時刻が 04:00 であると仮定します。01:00 にスケジュールされているノード A2 は、スケジューリングが一時停止されています。ノード A3 は 03:00 に、ノード B は 00:00 にスケジュールされています。ノード B はノード A2 と A3 に依存しています。
分析:シナリオ 1 で説明したように、ノードはすべての先祖ノードが正常に実行された後にのみ実行できます。左の図では、先祖ノード A2 がフリーズしているため、ノード B は実行されません。右の図では、先祖ノードが正常に実行されていても、ノード B 自体がフリーズしているため実行されません。
結論:ノード自体またはいずれかの先祖ノードがフリーズしている場合、ノードは実行されません。
- Not Runシナリオ 1:すべての先祖ノードが正常に実行されていない (ノードステータス:灰色 )。






