任務實際執行時,除了受數據開發(DataStudio)中定義的定時調度時間影響外,還受多方因素影響。例如,上游任務的定時時間、上游任務實際執行完成時間、任務執行資源組所剩資源等。本文為您介紹如何使用運行診斷功能快速定位任務未運行成功的原因。

前提條件

請確保已存在周期實例。調度任務通過周期實例的方式自動調度運行,新建任務周期實例生成與您在數據開發定義的節點實例生成方式有關。

背景信息

在運維中心,您可通過實例運行狀態、實例顏色及標識,判斷任務運行的階段或任務未運行的原因,具體可通過查看日志定位。
  • 實例顏色及標識:運維中心按照不同的顏色及標識來辨識任務所處于運行流程中的哪個階段,不同顏色及標識表示不同的運行狀態。具體如下表所示。
  • 實例運行狀態:您也可查看實例詳情,通過實例的屬性 > 任務狀態,檢查任務未運行的原因。
序號狀態類型狀態標識運行流程圖
1運行成功狀態運行成功運行流程圖
2未運行狀態未運行
3運行失敗狀態運行失敗
4正在運行狀態正在運行
5等待狀態等待狀態
6暫停/凍結狀態暫停凍結狀態
說明 若上游一直處于運行中的狀態,您可以參考以下解決方案。
  • 非離線同步任務一直處于運行中的狀態,如果需要查看具體原因您可以單擊申請鏈接或掃描下方二維碼加入DataWorks釘釘交流群進行售前售后咨詢,咨詢可直接@智能機器人,值班時間段內也可直接聯系值班人員。DataWorks釘釘交流群二維碼如下。技術支持二維碼
  • 離線同步任務一直處于運行中的狀態,可能處于長時間等待任務執行資源,或實際運行過程中部分邏輯處理較慢,詳情請參見如何排查離線同步任務運行時間長的問題

進入運行診斷

任務未運行或運行失敗場景下,您可在運維中心找到問題實例(周期實例補數據實例測試實例),進入運行診斷,快速定位任務未運行的原因。步驟如下圖。運行診斷入口

任務運行診斷流程

任務是否能成功運行,受其上游依賴、定時時間、資源組、任務本身執行情況等多方因素影響。當任務長時間未運行或運行失敗時,您可通過DataWorks提供的運行診斷功能,按照如下流程檢查導致任務未運行成功的原因。
檢查項說明
一、檢查上游依賴節點依賴關系設置完成后,需當前節點依賴的所有任務均執行完成,該節點才會運行。您可通過運行診斷 > 上游依賴定位上游存在問題的實例。
二、檢查定時時間在數據開發(DataStudio)定義的節點調度時間為任務的預期執行時間。您可通過運行診斷 > 定時檢查定位是否到達任務運行的定時時間。

若當前節點依賴的上游任務均已執行成功(即當前節點所依賴的數據均已產出),當前節點才會校驗是否已滿足自己定義的調度時間,通過校驗結果判斷是否立即執行任務。

三、檢查調度資源

通常,滿足當前節點所依賴的上游任務均已執行完成當前節點的定時時間已到達兩個條件后,該節點才會啟動調度。

但由于調度資源有限,若任務所使用的調度資源組所剩資源不足以運行當前任務,該任務將處于等待調度資源的狀態。您可通過運行診斷 > 調度資源定位資源使用情況。
四、檢查任務執行情況當滿足上述運行條件時,DataWorks會將任務下發至對應的執行資源或服務執行。若任務處于運行失敗狀態,您可通過運行診斷 > 任務執行快速定位失敗原因。
五、任務報警診斷(可選)對于配置了監控報警的任務,可在該任務的運行診斷頁面,查看將當前任務納入監控的規則或基線列表,以及各個規則或基線的觸發情況。

檢查上游依賴

您可通過以下內容了解上游任務對當前任務執行影響,并通過檢查上游依賴,定位阻塞當前任務執行的關鍵上游任務。

上游任務對當前任務執行影響

節點依賴關系設置完成后,需當前節點依賴的所有任務均執行完成,該節點才會啟動運行。上游任務對當前任務執行的影響如下:
  • 上游任務是否為成功狀態,決定當前任務是否執行

    節點依賴關系設置后,默認當前任務與當前任務依賴的上游存在數據依賴(即上游任務未執行,將導致當前節點依賴的上游數據未產出,當前節點執行會產生數據質量問題)。因此,當前任務除了要到達自己設置的任務調度時間外,還需檢查當前依賴的所有上游任務是否均執行完成。

  • 上游任務的定時時間,決定當前任務的最早開始執行時間

    上游任務存在自己的定時時間,到達該時間后,上游任務才會執行。下游任務的定時運行時間若早于上游任務,即便到達下游任務的定時時間,下游任務也不會調度,需等待上游任務運行完成后才會調度運行。因此,上游任務的定時時間,將決定當前任務最早開始執行時間。詳情請參見依賴關系對任務執行的影響

定位上游未運行的任務

若任務處于未運行狀態(即實例為未運行標識),您可單擊運行診斷,快速跳轉至上游依賴頁面,自動通過上游分析功能快速定位上游未運行的實例。
說明 上游分析功能默認向上遍歷六層,尋找上游未運行成功的任務。若未找到,可單擊界面的上游分析,繼續分析。
上游依賴檢查
特殊情況說明:
  • 孤立節點:若展開上游節點時,未運行任務無任何上游,則該任務為場景:節點孤立。孤立節點不會自動調度,請及時為當前節點設置上游依賴。
  • 上游凍結:若上游任務被凍結,凍結的上游將阻塞下游任務執行。請聯系上游任務責任人,確認凍結原因,及時調整業務。

檢查定時時間

在數據開發定義的節點調度時間為任務預期的執行時間。若當前節點依賴的上游任務均已執行成功(即當前節點所依賴的數據均已產出),當前節點才會校驗是否已滿足自己定義的調度時間,進而通過校驗結果判斷是否立即執行任務。通常,校驗存在如下兩種情況:
  • 已到達當前任務的定時時間,但上游任務仍處于執行中狀態。

    該場景下,一旦上游任務均執行完成后,若任務使用資源組充足,當前任務會立即執行。

  • 上游任務均已執行完成,但未到達當前任務的定時時間。
    該場景下,需等待任務的定時時間到達后,任務才可執行。若任務處于等待時間狀態(即實例為等待標識),您可單擊運行診斷,快速跳轉至定時檢查頁面查看詳情。定時檢查

檢查調度資源

當滿足當前節點所依賴的上游任務均已執行完成當前節點的定時時間已到達條件時,當前任務會開始調度。但由于調度資源有限,若任務所使用的調度資源組所剩資源不足以運行當前任務,則該任務將處于等待調度資源狀態。
說明 通常,調度資源與任務執行資源為不同的資源,調度資源僅負責將任務下發至引擎的執行資源上。若任務長時間執行占用引擎資源,即使調度資源下發任務至引擎,也會由于引擎資源不足而導致任務阻塞。您可以通過DataWorks任務下發機制圖示輔助理解該說明。

定位占用資源的任務

若任務處于等待資源狀態(即實例為等待標識),您可單擊運行診斷,快速跳轉至調度資源頁面,查看哪些任務正在占用資源并及時調整。

可能出現等待資源的場景

若長期調度正常的任務突然出現等待資源的情況,請確認是否存在以下場景。
場景描述
是否存在異常任務長時間占用資源未釋放,導致任務阻塞

請通過運行診斷 > 調度資源頁面,確認是否存在長時間占用資源的任務,通過查看任務執行日志定位長時間占用資源的原因。

該資源組上執行的任務是否增加

當前使用的資源組所執行的任務增加,會導致當前任務出現等待資源情況。您可根據需要調整任務的優先級或任務使用的資源組。

存在大量內存的任務

請在團隊內確認是否存在Shell、PyODPS任務使用大量獨享資源組內存的情況存在。

重要
  • 公共調度資源組租戶共享,高峰期(通常為00:00~09:00)將出現資源搶占情況,無法保障任務執行時效性。若使用公共調度資源組出現等待資源情況,建議將任務遷移至獨享調度資源組執行,詳情請參見獨享調度資源組
  • 獨享調度資源組最大支持的任務并行數,與您所購買的資源組規格有關。獨享調度資源組各規格支持執行的任務數,詳情請參見獨享調度資源組

檢查任務執行情況

當滿足以上運行條件時,DataWorks會將任務下發至對應的執行資源或服務上執行。DataWorks任務下發機制,詳情請參見任務下發機制

若任務處于運行失敗狀態(即實例為運行失敗標識),您可單擊運行診斷,快速跳轉至任務執行頁面,查看任務執行失敗的原因。運行失敗通常,任務執行失敗存在以下幾種情況:
  • 任務代碼執行失敗(數據同步邏輯或數據加工邏輯執行失敗)。
  • 任務中產出表配置的數據質量規則校驗失敗(即任務關聯的數據質量規則校驗失敗)。
  • 任務被凍結。

檢查SQL任務代碼執行情況

SQL任務可直接在運行診斷 > 任務執行頁面查看任務的詳細執行日志。DataWorks會將任務下發至對應的引擎執行,若SQL語句執行失敗,您可查看相應引擎文檔定位原因。

檢查同步任務執行情況

若數據集成同步任務開始執行,表示DataWorks的調度系統已經開始調度該任務。但任務是否已經開始同步數據,需根據詳細的執行日志進行判斷。數據集成任務日志分析,詳情請參見離線同步日志分析。常見的同步任務執行問題如下:
  • 數據同步日志長時間打印WAIT

    若數據同步日志長時間打印WAIT,表示DataWorks的調度系統已將同步任務下發,由于當前任務所使用的同步資源組剩余資源無法支持當前任務執行,正在等待其他任務執行完成釋放資源。

    例如,4C8G獨享數據集成資源組最大支持8個并發數同時執行,若當前存在3個并發數為3的任務,其中2個任務同時執行,則機器剩余的并發數為2,此時另一個并發數為3的任務將由于資源組剩余資源不足,導致當前任務進入等待狀態,日志顯示wait。該場景,可通過運行診斷 > 任務執行 > 數據集成頁簽,查看任務等待數據集成資源時,哪些任務正在占用該資源,以及單個任務占用的資源量。
    說明
    • 一個數據集成任務將占用一個調度資源,若任務長時間未運行成功,可能會阻塞其他任務運行。
    • 如果資源使用率高但實際無任務執行或資源組上可執行任務數未達資源組上限但仍無法執行任務,您可以單擊申請鏈接或掃描下方二維碼加入DataWorks釘釘交流群進行售前售后咨詢,咨詢可直接@智能機器人,值班時間段內也可直接聯系值班人員。DataWorks釘釘交流群二維碼如下。二維碼
    同步任務執行檢查
    說明 獨享數據集成資源組最大支持多少并發同時執行,與您所購買的資源組規格有關。詳情請參見獨享數據集成資源組
  • 數據同步失敗

    若同步任務執行失敗,您可參考詳細報錯與具體插件說明定位原因。詳情請參見數據集成常見問題

任務報警診斷

對于配置了監控報警的任務,您可在該任務運行診斷頁面的提示信息區域,單擊查看詳情,在監控詳情對話框查看將當前任務納入監控的規則或基線列表,以及各個規則或基線的觸發情況。
說明 僅當任務配置了監控報警時,才會出現該診斷信息。詳情請參見任務報警信息診斷
監控報警