任務實際執行時,除了受數據開發(DataStudio)中定義的定時調度時間影響外,還受多方因素影響。例如,上游任務的定時時間、上游任務實際執行完成時間、任務執行資源組所剩資源等。本文為您介紹如何使用運行診斷功能快速定位任務未運行成功的原因。
前提條件
請確保已存在周期實例。調度任務通過周期實例的方式自動調度運行,新建任務周期實例生成與您在數據開發定義的節點實例生成方式有關。背景信息
- 實例顏色及標識:運維中心按照不同的顏色及標識來辨識任務所處于運行流程中的哪個階段,不同顏色及標識表示不同的運行狀態。具體如下表所示。
- 實例運行狀態:您也可查看實例詳情,通過實例的 ,檢查任務未運行的原因。
序號 | 狀態類型 | 狀態標識 | 運行流程圖 |
---|---|---|---|
1 | 運行成功狀態 | ||
2 | 未運行狀態 | ||
3 | 運行失敗狀態 | ||
4 | 正在運行狀態 | ||
5 | 等待狀態 | ||
6 | 暫停/凍結狀態 |
- 非離線同步任務一直處于運行中的狀態,如果需要查看具體原因您可以單擊申請鏈接或掃描下方二維碼加入DataWorks釘釘交流群進行售前售后咨詢,咨詢可直接@智能機器人,值班時間段內也可直接聯系值班人員。DataWorks釘釘交流群二維碼如下。
- 離線同步任務一直處于運行中的狀態,可能處于長時間等待任務執行資源,或實際運行過程中部分邏輯處理較慢,詳情請參見如何排查離線同步任務運行時間長的問題。
進入運行診斷
任務運行診斷流程
檢查項 | 說明 |
---|---|
一、檢查上游依賴 | 節點依賴關系設置完成后,需當前節點依賴的所有任務均執行完成,該節點才會運行。您可通過 | 定位上游存在問題的實例。
二、檢查定時時間 | 在數據開發(DataStudio)定義的節點調度時間為任務的預期執行時間。您可通過 定位是否到達任務運行的定時時間。 若當前節點依賴的上游任務均已執行成功(即當前節點所依賴的數據均已產出),當前節點才會校驗是否已滿足自己定義的調度時間,通過校驗結果判斷是否立即執行任務。 |
三、檢查調度資源 | 通常,滿足當前節點所依賴的上游任務均已執行完成、當前節點的定時時間已到達兩個條件后,該節點才會啟動調度。 但由于調度資源有限,若任務所使用的調度資源組所剩資源不足以運行當前任務,該任務將處于等待調度資源的狀態。您可通過 定位資源使用情況。 |
四、檢查任務執行情況 | 當滿足上述運行條件時,DataWorks會將任務下發至對應的執行資源或服務執行。若任務處于運行失敗狀態,您可通過 | 快速定位失敗原因。
五、任務報警診斷(可選) | 對于配置了監控報警的任務,可在該任務的運行診斷頁面,查看將當前任務納入監控的規則或基線列表,以及各個規則或基線的觸發情況。 |
檢查上游依賴
您可通過以下內容了解上游任務對當前任務執行影響,并通過檢查上游依賴,定位阻塞當前任務執行的關鍵上游任務。上游任務對當前任務執行影響
- 上游任務是否為成功狀態,決定當前任務是否執行
節點依賴關系設置后,默認當前任務與當前任務依賴的上游存在數據依賴(即上游任務未執行,將導致當前節點依賴的上游數據未產出,當前節點執行會產生數據質量問題)。因此,當前任務除了要到達自己設置的任務調度時間外,還需檢查當前依賴的所有上游任務是否均執行完成。
- 上游任務的定時時間,決定當前任務的最早開始執行時間
上游任務存在自己的定時時間,到達該時間后,上游任務才會執行。下游任務的定時運行時間若早于上游任務,即便到達下游任務的定時時間,下游任務也不會調度,需等待上游任務運行完成后才會調度運行。因此,上游任務的定時時間,將決定當前任務最早開始執行時間。詳情請參見依賴關系對任務執行的影響。
定位上游未運行的任務
- 孤立節點:若展開上游節點時,未運行任務無任何上游,則該任務為場景:節點孤立。孤立節點不會自動調度,請及時為當前節點設置上游依賴。
- 上游凍結:若上游任務被凍結,凍結的上游將阻塞下游任務執行。請聯系上游任務責任人,確認凍結原因,及時調整業務。
檢查定時時間
- 已到達當前任務的定時時間,但上游任務仍處于執行中狀態。
該場景下,一旦上游任務均執行完成后,若任務使用資源組充足,當前任務會立即執行。
- 上游任務均已執行完成,但未到達當前任務的定時時間。該場景下,需等待任務的定時時間到達后,任務才可執行。若任務處于等待時間狀態(即實例為標識),您可單擊運行診斷,快速跳轉至定時檢查頁面查看詳情。
檢查調度資源
定位占用資源的任務
若任務處于等待資源狀態(即實例為標識),您可單擊運行診斷,快速跳轉至調度資源頁面,查看哪些任務正在占用資源并及時調整。
可能出現等待資源的場景
場景 | 描述 |
---|---|
是否存在異常任務長時間占用資源未釋放,導致任務阻塞 | 請通過查看任務執行日志定位長時間占用資源的原因。 頁面,確認是否存在長時間占用資源的任務,通過 |
該資源組上執行的任務是否增加 | 當前使用的資源組所執行的任務增加,會導致當前任務出現等待資源情況。您可根據需要調整任務的優先級或任務使用的資源組。 |
存在大量內存的任務 | 請在團隊內確認是否存在Shell、PyODPS任務使用大量獨享資源組內存的情況存在。 |
檢查任務執行情況
當滿足以上運行條件時,DataWorks會將任務下發至對應的執行資源或服務上執行。DataWorks任務下發機制,詳情請參見任務下發機制。
- 任務代碼執行失敗(數據同步邏輯或數據加工邏輯執行失敗)。
- 任務中產出表配置的數據質量規則校驗失敗(即任務關聯的數據質量規則校驗失敗)。
- 任務被凍結。
檢查SQL任務代碼執行情況
SQL任務可直接在
頁面查看任務的詳細執行日志。DataWorks會將任務下發至對應的引擎執行,若SQL語句執行失敗,您可查看相應引擎文檔定位原因。檢查同步任務執行情況
- 數據同步日志長時間打印WAIT
若數據同步日志長時間打印WAIT,表示DataWorks的調度系統已將同步任務下發,由于當前任務所使用的同步資源組剩余資源無法支持當前任務執行,正在等待其他任務執行完成釋放資源。
例如,4C8G獨享數據集成資源組最大支持8個并發數同時執行,若當前存在3個并發數為3的任務,其中2個任務同時執行,則機器剩余的并發數為2,此時另一個并發數為3的任務將由于資源組剩余資源不足,導致當前任務進入等待狀態,日志顯示wait
。該場景,可通過 頁簽,查看任務等待數據集成資源時,哪些任務正在占用該資源,以及單個任務占用的資源量。說明- 一個數據集成任務將占用一個調度資源,若任務長時間未運行成功,可能會阻塞其他任務運行。
- 如果資源使用率高但實際無任務執行或資源組上可執行任務數未達資源組上限但仍無法執行任務,您可以單擊申請鏈接或掃描下方二維碼加入DataWorks釘釘交流群進行售前售后咨詢,咨詢可直接@智能機器人,值班時間段內也可直接聯系值班人員。DataWorks釘釘交流群二維碼如下。
說明 獨享數據集成資源組最大支持多少并發同時執行,與您所購買的資源組規格有關。詳情請參見獨享數據集成資源組。 - 數據同步失敗
若同步任務執行失敗,您可參考詳細報錯與具體插件說明定位原因。詳情請參見數據集成常見問題。