天天看點

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

概述

X-Pack Spark目前是通過Yarn管理資源。在送出Spark 任務後我們經常需要知道任務的運作狀況,例如任務失敗了在哪裡看日志、怎麼檢視每個Executor的運作狀态、每個task的運作狀态,性能瓶頸點在哪裡等資訊。

本文主要介紹如何使用X-Pack Spark的Yarn UI 和Spark Job UI來擷取上述的資訊。

Yarn 基礎知識介紹

Yarn 是hadoop體系中的一個資源管理和排程的元件。網上搜尋Spark on Yarn有很多學習資料,這裡隻做簡單入門級介紹:Spark作業的運作是向Yarn送出一個任務,Yarn拿到任務後配置設定、排程資源,然後調研Spark叢集跑任務。過程如下圖所示:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

關于Yarn的官網資料可參考:

Apache Hadoop Yarn

X-Pack Spark 作業管理連結介紹

X-Pack Spark提供了作業管理,可以送出Spark任務(背景邏輯是送出到Yarn,Yarn再排程Spark叢集)。任務運作的狀态有如下幾個連結:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

如上圖有四個連結:日志,Spark UI,Yarn UI,詳情,停止。

  1. 日志

    這裡的日志點進去是控制台送出任務的日志,對應背景Livy的日志。主要顯示Livy 與 Spark交換的日志。

  2. Spark UI

    Spark UI是Spark job 運作的詳細資訊,下面會詳細介紹。

  3. Yarn UI

    Yarn UI 點選進去是Yarn的管理界面,下面會詳細介紹。

  4. 詳情

    任務送出的參數詳情

  5. 停止

    點選可以停止此次任務。

常用的就是Spark UI 和 Yarn UI, 通過Yarn UI 和 Spark UI 可以檢視Spark 運作的日志,包括Driver的日志和Executor的日志。具體的使用方法下面詳情介紹。

Yarn UI的介紹

Yarn UI入口

X-Pack Yarn UI入口有兩個。

1、從X-Pack Spark叢集明細界面入口。如下圖,點選“YARN”,進入Yarn UI。

注意:請先閱讀“UI通路說明”

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

2、從“作業管理”中每個作業的運作結果狀态顯示欄入口。如下圖:

注意:請先閱讀上圖的“UI通路說明”

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

Yarn UI功能介紹

進入YarnUI後可以看到如下的界面:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

界面主要分三個區域。區域1:導航欄;區域2:叢集的統計資訊;區域3:Spark任務的運作狀态區域。

下面分别介紹這3個區域。

區域1:導航欄,點選不同的連結右邊的區域會重新整理。

這裡主要介紹“Applications”。

Applications:所有送出的Spark任務清單。例如通過“作業管理”、“工作流”、“互動式查詢”送出的任務都會在這裡顯示。

Applications-RUNNING:正在運作的Spark任務。點選後會顯示任務清單中“State”是“RUNNING”的任務清單。例如下圖:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

Applications-FINISHED:運作結束的Spark任務。點選後會顯示任務清單中“State”是“FINISHED”的任務清單。

Applications-FAILED:運作失敗的Spark任務。點選後會顯示任務清單中“State”是“FAILED”的任務清單。

區域2:叢集的統計資訊,主要顯示叢集的統計資訊。

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

常用資訊說明如下:

名稱 說明
Memory Total 叢集總可用記憶體。
Memory Used 叢集已經使用的記憶體。
VCores Total 叢集總可用的虛拟cpu core個數。送出spark任務指定的“--driver-cores”和“--executor-cores”使用的資料就是對應這裡的VCores
VCores Used 叢集總已經使用的虛拟cpu core個數。
Active Nodes 可用的節點。節點是具有記憶體Memory和Vcores資源的機關,一個Nodes中會有若幹Memory和Vcores。點選下面的數字會顯示每個節點的Memory和Vcores的使用情況。
Decommissioned Nodes、Lost Nodes、Unhealthy Nodes 可能出現問題的Nodes。

下面看下點選“Active Nodes”下面的數字後展示的資訊。

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

如上圖,點選數字後顯示如下資訊:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

如上圖紅色區域展示了“Active Nodes”的資訊,例如節點狀态、多少可用的記憶體、多少可用的VCores等。

節點已經使用的記憶體。
Memory Avail 節點可用的記憶體。如果Spark 任務一直不能起來,可以先到這裡看看是否可用記憶體不足。
節點已使用的虛拟cpu core個數。送出spark任務指定的“--driver-cores”和“--executor-cores”使用的資料就是對應這裡的VCores
VCores Avail 節點可用的Vcores。如果Spark 任務一直不能起來,可以先到這裡看看是否可用Vcores不足。

區域3:Spark任務的運作狀态區域,顯示每個Spark任務的運作資訊,例如,開始時間、結束時間、狀态等資訊。

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結
ID 每個Spark任務都會有一個唯一辨別的ID。
Name 送出Spark任務的名稱。對應控制台送出指令中的“--name” 資訊。
State Spark任務運作的狀态,例如RUNNING/FINISHED/FAILED/SUCCEEDED等。
Tracking UI Spark UI的連結,點選ApplicationMaster可以進入Spark UI。注意:隻有State為RUNING的Spark任務才能進入Spark UI。

Spark UI 介紹

Spark UI入口

Spark UI入口有兩個。

1、從Yarn UI進入。

如下圖,進入Yarn UI後點選“RUNNING” 檢視Spark任務清單。

注意:隻有State為RUNING的Spark任務才能進入Spark UI。

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

Spark UI功能介紹

下圖是Spark UI的首頁,分兩個區域。導航欄和資訊顯示欄。

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

導航欄

導航欄常用資訊說明:

Jobs 顯示所有的Spark 任務的Job運作狀态。
Stages 顯示所有的Spark 任務的Job的Stages運作狀态。
Environment Spark叢集的配置資訊。
Executors Spark叢集的Executors狀态資訊。
Streaming Spark叢集的Streming任務的統計資訊。
SQL Spark叢集的SQL運作狀态資訊。

下面分别介紹每個導航欄的用途。

Jobs頁面如下:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

常用資訊說明:

Active Jobs 正在運作的Job。
Completed Jobs 已經運作結束的Job。
Duration Job運作的時間,可以檢視下Job運作的性能。
Submitted Job送出的時間。
Stages: Succeeded/Total 此job對應的所有Stages的總數和運作成功的個數。
Tasks (for all stages): Succeeded/Total 此job對應的所有的stages的task總數和運作的成功的個數。“1 running”表示有1個task正在運作,正在運作的task個數表示job運作并行度,一般情況下提高task的運作個數可提高Job的執行性能。

Stages頁面如下:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

Stages 頁面的是展示Job的所有Stages資訊的頁面,Stages的詳細資訊比Jobs多出幾個常用的資訊如下,這幾個資訊常可用來分析Spark 任務的性能。

Input Stage輸入的資料量。
Output Stage輸出的資料量。
Shuffle Read Stage Shuffle 輸入的資料量。
Shuffle Write Stage Shuffle 輸出的資料量。

另外點選Stage的“Description”可以進入Stage的tasks運作明細,下圖是Stage的task運作明細:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

Tasks運作明細是在調試程式、分析任務性能的常用資訊。這裡可以看到每個task的運作時間、GC多少、運作狀态等資訊。

Task的執行時間,用于評估task的性能。
GC Time Task的GC時間。如果GC時間過長,會影響task的運作性能,這時可以增加Executor的記憶體:在送出指令中增加--executor-memory的值,或者減少task的并行度:在送出指令中減少--executor-cores的值
Errors Task的錯誤資訊。如果task執行失敗,部分的錯誤資訊會顯示在這裡。全部的錯誤資訊要點選“Host”一欄中的“stderr”日志。

Environment主要展示Runtime Information、Spark Properties、System Properties、Classpath Entries。這裡不做詳細介紹。

Executors頁面如下:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結
Summary 顯示Executor的總體運作狀态。Active、Dead的個數
Logs Driver日志 和 Executor 日志的入口,點選可以檢視對應的stdout和stderr日志。stdout:代碼中使用print指令打出的資訊會顯示在這個日志中。stderr:系統産出的日志資訊會顯示在這個日志中。

Streaming頁面如下主要分兩塊:

Streaming Statistics:統計Streming的資料輸入量、Streming的處理時間和時延。如下圖:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

Streming每個批次的運作狀況,便于分析每個批次的性能。如下圖:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結
Batch Time 批次産生的時間。
Records 批次擷取到的資料量。
Scheduling Delay 批次開始處理的時延。
Processing Time 批次處理的時間。
Total Delay 批次處理完畢的總時延。

SQL 頁面主要顯示每個SQL任務資訊,主要可以用于SQL的執行計劃的檢視。例如點選SQL頁面的“Description”資訊可以看到對應SQL的執行計劃。如下圖:

如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任務運作狀況的分析概述Yarn 基礎知識介紹X-Pack Spark 作業管理連結介紹Yarn UI的介紹Spark UI 介紹小結

其它的這裡不做詳細介紹。

小結

本文隻對Yarn UI和Spark UI的進行簡單的介紹,其它更詳細資訊可以參考:

社群資料

X-Pack Spark平台使用可參考:

X-Pack Spark

繼續閱讀