Logview是MaxCompute Job提交後查看和Debug任務的工具。
通過Logview可看到一個Job的如下內容:
- 任務的運行狀態。
- 任務的運行結果。
- 任務的細節和每個步驟的進度。
Job提交到MaxCompute後,會產生Logview的連結。您可以直接在瀏覽器上開啟Logview連結,進入查看Job的資訊。
說明 每個Job的Logview頁面的有效期間為一周。
Logview功能組件
下面結合具體的Logview Web UI介面,為您介紹每個組件的含義。
Logview的首頁分成上下兩部分:
- Instance資訊
- Task資訊
Instance資訊
在Logview頁面中,上半部分是您提交的SQL任務對應的MaxCompute Instance資訊,包含URL連結、專案、InstanceID、提交人、開始時間、結束時間和狀態(Status)等。
- Instance資訊部分,您可以單擊Status查看當前隊列的Status詳細資料,包含四種狀態:
- Waiting:說明當前作業正在MaxCompute中處理,並沒有提交到分布式調度系統(Fuxi)中運行。
- Waiting List : n:說明作業已提交至分布式調度系統(Fuxi)排隊等待運行,當前在隊列中處於第n位。
- Running:作業在分布式調度系統(Fuxi)中運行。
說明 處於Terminated狀態的Instance由於作業已處理完成,因此不存在隊列資訊。 - 單擊Status查看隊列詳細資料:
- Sub Status:表示當前子狀態資訊。
- WaitPos:表示排隊位置,如果是
0
表示正在運行,如果為-
表示尚未到Fuxi。 - QueueLength:表示Fuxi中總的隊列長度。
- Total Priority:表示作業運行時經過系統判斷後授予的優先順序。
- SubStatus History:單擊後,可以查看作業執行的詳細歷史狀態,包含狀態代碼、狀態原因、開始時間、期間等(某些版本暫時無歷史資訊)。
Task 資訊
在Logview頁面中,下半部分為該Instance對應的task資訊,包括任務名稱、類型、狀態、運行結果(Result)、詳細資料(Detail)、開始時間、結束時間、總已耗用時間(Latency)、進度。其中,Latency指運行總共消耗的時間,與其他頁面的Latency含義類似。
Result:
在Job運行結束後,可以看到運行結果。例如一條select SQL的結果如下圖所示。
Detail:
一個Job在運行中和結束後,均可以單擊Detail來查看任務啟動並執行具體情況。在MaxCompute Task詳細資料對話方塊中,您可以查看以下資訊:
- 一個MaxCompute Task可以由一個或多個Fuxi Job組成。例如,如果您提交的SQL任務較為複雜,MaxCompute將自動向分布式調度系統(Fuxi)提交多個Fuxi Job。
- 每個Fuxi Job可以由一個或多個Fuxi Task組成。例如,簡單的MapReduce任務通常會產生兩個Fuxi Task,即Map Task(M1)和Reduce Task(R2)。而一個比較複雜的SQL任務也可能產生多個Fuxi Task。
- 查看所產生的Fuxi Task的任務名稱。任務名稱一般由字母和數字組成,其中字母表示任務類型(例如,M代表Map Task),數位識別碼任務編號以及依賴關係(例如,R5_4表示該Reduce Task需要J4任務執行結束後才會開始執行;J4_1_2_3則表示該Join Task需要M1、M2、M3這三個任務都執行完成後才會開始執行)。 說明 I/O Records表示該Fuxi Task的輸入和輸出的記錄數。
- I/O Records表示這個task的輸入和輸出的records數。
單擊Fuxi Task最右側的查看列中的按鈕或雙擊該Fuxi Task,您可以查看該Fuxi Task對應的Instance資訊。
說明 每個Fuxi Task由一個或多個Fuxi Instance組成。當Fuxi Task的輸入資料量持續增大時,MaxCompute將自動為該Task啟動更多的節點來處理資料,每個節點即對應一個Fuxi Instance。
在頁面下方的Fuxi Instance資訊部分,Logview將處於不同階段的Instance進行分組展示。例如,您可以選擇Failed組,查看運行出錯的節點。同時,您可以單擊StdOut和StdErr列中的按鈕查看標準輸出資訊和標準錯誤資訊。
說明 您在所提交的MaxCompute任務中編寫的列印資訊也將在標準輸出資訊和標準錯誤資訊中展示。
使用Logview排查問題
- 出錯的任務
當有任務出錯時,您可以在Logview頁面的Result中看到錯誤的提示資訊,也可以在Detail頁面中通過Fuxi Instance的stderr,查看具體某個Instance出錯的資訊。
- 資料扭曲運行緩慢有時是由於在某個Fuxi Task的所有Fuxi Instance中,有個別Instance形成長尾造成的。長尾的現象由同一個Task內任務分配不均導致。這時可以在任務運行完後,在Summay標籤頁中看運行結果。在每個Task中都可以看到如下輸出:
output records: R2_1_Stg1: 199998999 (min: 22552459, max: 177446540, avg: 99999499)
此處如果min和max值相差較大,不在一個數量級,說明在這一階段出現了資料扭曲。例如在執列欄位Join時,某個欄位中有一個值出現的比例很高,則在這一欄位上執行Join就會出現資料扭曲。