本文為您介紹Logview 2.0的功能及使用,本文簡稱Logview。您可以通過Logview URL查看作業運行資訊。
概述
Logview是MaxCompute作業運行狀態資訊記錄與展現的一個工具,目前支援如下功能:
支援以互動式DAG圖展示作業處理邏輯架構,您還可以查看相應的Operation層級。
支援回放作業運行過程。
支援通過Fuxi Sensor查看記憶體及CPU使用方式。
Logview入口
當您提交運行MaxCompute作業時,系統會自動產生一個以https://logview.aliyun.com/logview
開頭的URL地址。
使用MaxCompute用戶端(odpscmd)提交作業後,您需要手工複製該地址到瀏覽器中訪問。
使用DataWorks提交作業後,您直接點選連結就可以開啟Logview介面。
Logview介面如下。
序號 | 地區 |
① | 標題與功能區,詳情請參見標題和功能區。 |
② | Basic Info,詳情請參見Basic Info。 |
③ | 作業詳情,詳情請參見作業詳情。 |
標題和功能區
標題與功能區包含您提交MaxCompute作業時產生的唯一作業ID及您自訂的作業名稱(通過SDK方式提交的作業包含作業名稱資訊)。您還可以執行如下操作。
表徵圖 | 功能 |
開啟本地儲存的作業詳情檔案Logview_detail.txt。 | |
返回Logview 1.0版介面。 | |
將作業詳情檔案儲存至本地裝置。 |
Basic Info
Basic Info地區展示的作業基本資料如下。
參數名 | 描述 |
MaxCompute Service | 作業使用的MaxCompute服務的Endpoint。Endpoint詳情請參見Endpoint。 |
Project | 作業所屬的MaxCompute專案名稱。 |
Cloud account | 提交作業的阿里雲帳號資訊。 |
Type | 作業的類型。例如SQL、SQLRT、LOT、XLib、CUPID、AlgoTask和Graph。 |
Status | 作業的狀態。狀態取值如下:
|
Start Time | 作業提交時間。 |
End Time | 作業執行結束時間。 |
Latency | 作業執行消耗的時間長度。 |
Progress | 作業執行進度。 |
Priority | 作業優先順序。 |
Queue | 作業在資源配額組內的排隊位置。 |
作業詳情
您可以通過作業詳情地區全方位瞭解作業,作業詳情地區包含如下功能區:
Job Details
作業執行圖
Job Detail頁簽的上半部分為作業執行圖。執行圖以可視化方式展示三個維度子任務依賴關係:Fuxi Job層、Fuxi Task層和Operation層,同時提供一系列協助工具輔助,為排查問題提供協助。介面構成如下。
序號
描述
①
麵包屑導航,用於切換Fuxi Job。JOB:_SQL_0_0_0_job_0為Fuxi Job名稱。
②
排查問題協助工具輔助。包含Progress Chart、Input Heat Chart、Output Heat Chart、TaskTime Heart Chart和InstanceTime Heart Chart。
③
您可以在此地區重新整理作業執行狀態()、全屏或縮放顯示作業執行圖()、擷取MaxCompute Studio文檔()和切換至任務上一層級()。
④
縮放協助工具輔助。
⑤
Fuxi Task。一個MaxCompute作業由一個或多個Fuxi Job組成。每個Fuxi Job由一個或多個Fuxi Task組成。每個Fuxi Task由一個或者多個Fuxi Instance組成,當使用者的輸入資料量變大時,MaxCompute會在每個Task啟動更多的節點來處理資料,每個節點就是一個Fuxi Instance。例如,簡單的MapReduce通常會產生兩個Fuxi Task,一個是Map一個是Reduce,兩個Fuxi Task的名稱分別為M1和R2,當SQL比較複雜時,可能會產生多個Fuxi Task。
您可以在執行介面上看到每個Fuxi Task的名稱。例如M1,表示一個Map Task;R4_3_9的3、9表示它依賴M3、C9_3執行結束才能開始執行。同理,M2_4_9_10_16表示M2要依賴R4_3_9、C9_3、R10_1_16、C16_1四個Task執行結束後才能開始執行。R/W表示Task讀取和寫的行數。
單擊某個Task或在Task上單擊右鍵可以查看Task對應的Operator運算元依賴關係及全部Operator運算元圖。
您可以快速查看輸入和輸出表。
⑥
Fuxi Task回放。單擊即可開始播放,再次單擊則暫停。您也可以手動拖動進度條。進度條左邊為開始時間,中間為播放時間,右邊為結束時間。
⑦
鷹眼。
說明不支援回放Running狀態的Fuxi Task。
AlgoTask類型的作業(例如PAI機器學習),由於只有一個Fuxi Task,故不提供作業執行圖。
非SQL類型作業,僅能展示Fuxi Job和Fuxi Task層,不支援展示Operation層。
如果只有一個Fuxi Job,作業執行圖預設展示Fuxi Task層依賴關係;否則,預設展示Fuxi Job層依賴關係。
作業運行情況
Job Detail頁簽的下半部分為作業運行詳細資料。介面構成如下。
序號
描述
①
Fuxi Job頁簽,您可以在此切換Fuxi Job。
②
Fuxi Job對應的Fuxi Task詳情。在某個Fuxi Job下,單擊任一Fuxi Task,在下方會展開該Fuxi Task對應的Fuxi Instance資訊。預設展開第一個Fuxi Job的第一個Fuxi Task的Fuxi Instance資訊。
對於AlgoTask和CUPID類型作業,此地區會提供Sensor列,您可以單擊Fuxi Task對應的Sensor查看Fuxi Instance的CPU及記憶體資訊。Fuxi Job分類如下:
M:資料掃描的作業。
R:R開頭的是Reduce Job。
J: J開頭的是Join Job。
C:C開頭的作業是一個虛擬節點,不涉及任何計算,只做判斷選擇分支使用。
說明Fuxi Sensor功能在西南1(成都)、華南1(深圳)、華東2(上海)、華東1(杭州)、華北3(張家口)和華北2(北京)地區已開放。
Fuxi Task會有可能因為
interrupted
狀態而重試運行,此時Progress只顯示重試運行部分的進度,所以會出現整個作業已經執行成功但是此Fuxi Task的Progress不是100%
的現象,此為正常顯示。
③
Logview為不同階段的Instance進行了分組。您可以單擊Failed快速查看出錯的節點。
④
Fuxi Instance。
ID樣本為
M1#0_0
,其中第一個0
的位置代表Fuxi Instance的自增ID;第二個0
的位置代表任務的重跑次數,0
代表沒有重跑,值為幾就代表重跑幾次。StdOut和StdErr。您可以查看輸出和錯誤資訊,您自己列印的資訊也可以在這裡查看,同時提供下載功能。
Debug。調測並排除錯誤。
Fuxi Instance數量限制:
當使用如下SQL語句時,Fuxi Instance個數限制為1個。
limit
。窗函數SQL中沒有
partition by key
。Aggregate操作SQL中沒有
group by key
。Join操作SQL中沒有等值Join Key。
order by
。
Fuxi Sensor
Fuxi Sensor是展示MaxCompute作業全維度資源檢視。您可以通過Fuxi Sensor查看Fuxi Instance的CPU及記憶體的實際消耗量。Fuxi Sensor是作業問題定位以及作業運行品質分析的重要工具。例如以下情境的作業問題可藉助Fuxi Sensor進行分析:
作業記憶體溢出時,分析實際使用的記憶體量。
例如,您可以通過Fuxi Sensor查看機器學習作業Fuxi Instance的以下資源使用方式:
CPU使用量
CPU指標包括兩條線,一條顯示申請的CPU量(cpu_plan),另一條顯示實際的CPU使用量(cpu_usage)。縱座標中的400,表示4個Processor。目前使用者只可以通過調整Processor的個數來調整申請的CPU量,目前使用者無法調整CPU使用量。
記憶體使用量量
記憶體指標包括兩條線,一條顯示申請的記憶體量(mem_plan),另一條顯示實際的記憶體使用量量(mem_usage)。
記憶體使用量量(mem_usage)包括兩部分資訊RSS(Resident Set Size)和PageCache。RSS是Malloc(非檔案對應)發生缺頁之後的記憶體,該部分記憶體,在記憶體緊張時無法被回收。PageCache是核心快取檔案佔用的記憶體,例如讀寫記錄檔,PageCache在記憶體緊張時通常是可以被回收。
記憶體詳情
RSS記憶體使用量量
PageCache記憶體使用量量
Result
Result頁簽顯示的內容有如下兩種情況:
當前作業運行成功,顯示的為運行結果。
您可以使用如下面命令選擇關閉顯示運行結果。
setproject odps.forbid.fetch.result.by.bearertoken=true;
您可以通過設定如下Flag參數改變顯示結果樣式。
--CSV格式 set odps.sql.select.output.format=csv; --Text格式 set odps.sql.select.output.format=HumanReadable;
當前作業運行失敗,顯示的為失敗原因。
SourceXML
XML
在該頁簽下以XML方式顯示作業等級以及Task相關資訊。
Settings
在該頁簽下顯示了當前Task的相關Setting資訊。
Command
在該頁簽下顯示了當前Task的相關Flag設定情況。
SQL Script
該頁簽下顯示當前Task的SQL運行指令碼。
History
該頁簽下顯示了當前Task的執行歷程記錄。
SubStatusHistory
在該頁簽下顯示了當前SubTask的運行狀態,具體含義如下。
狀態 | 說明 |
Waiting for scheduling | 作業已提交,等待MaxCompute架構調度,通常時間很短。 |
Waiting for cluster resource | MaxCompute架構發現Fuxi計算叢集沒資源,等待中。 |
Waiting for concurrent task slot | Project層級流控,Project可以設定並行提交SQL個數。 |
Waiting for data replication | 等待資料複製。 |
Waiting for execution slot | 系統層級流控。 |
Waiting for cleaning up of previous task attempt | 等待清理執行歷史完成。 |
Waiting for execution | 從父進程隊列拿出來分發給子進程執行過程,通常很快。 |
Preparing for execution | 明確知道交給子進程,如果子進程出問題才會時間長。 |
Task is executing | 作業在架構處理中。 |
SQLTask is initializing | SQL作業初始化中。 |
SQLTask is compiling query | SQL作業編譯中。 |
SQLTask is optimizing query | SQL作業最佳化Query,如果執行計畫複雜,最佳化時間會稍長,但過長可能就是出問題了。 |
SQLTask is splitting data sources | SQL作業最佳化中,切分Data Sources。 |
SQLTask is generating execution plan | SQL作業產生執行計畫中,時間長可能是讀取分區太多,或者小檔案太多。 |
SQLTask is submitting execution plan | SQL作業提交執行計畫。 |
Job has been submitted | 作業提交計算叢集。 |
Offline Job Waiting for running | 作業提交計算叢集後發現Fuxi叢集Quota組無資源,此狀態表示作業在等待計算資源。作業提交計算叢集前本來以為有計算資源,實際提交後發現無計算資源,就會等待。此狀態只會出現一次,後續就算沒有計算資源也不會再顯示。 |
Offline Job is running | Fuxi作業執行中, 如果運行中無資源,會一直保持該狀態。例如高優先順序作業搶佔資源,導致部分Fuxi Instance不能運行,狀態為 |
Offline Job is failed | Fuxi作業執行失敗。 |
Offline Job is succeed | Fuxi作業執行成功。 |
SQLTask is updating meta information | SQL作業更新中繼資料資訊狀態,產生動態分區時,時間可能會稍長。 |
SQLTask is finishing | SQL作業執行結束。 |
Online Job is cancelled by fuxi |
|
Task rerun | 作業重跑,可能是 |
Online Job Waiting for running |
|
Online Job is running |
|
Online Job is failed |
|
Online Job is succeed |
|
Online Job is cancelled by fuxi |
|
Task key-path executing finished | 作業關鍵路徑完成,但是Detailstatus等尚未完成. |
Task key-path is finished | 作業關鍵路徑完成。 |
Instance key-path is finished | Instance關鍵路徑完成。 |
Task execution is finished | 作業處理完成,產生DetailStatus。 |
Instance execution is finished | 作業處理完成。 |
Execution failed | 作業執行失敗。 |