計算引擎提供SparkUI和HDFS Shell工具,方便您查看作業運行狀態、資源使用方式及歷史作業資訊。
前提條件
查看作業運行資訊
進入SparkUI介面
SparkUI地址擷取方法請參見查看SparkUI地址。
關於開源SparkUI介面的詳細介紹請參見開源SparkUI。
將SparkUI地址複製在瀏覽器地址欄中,可以進入SparkUI介面。進入SparkUI後,預設顯示 Jobs 頁面,頁面頂部展示當前應用基本資料,包括 User、Total Uptime 和 Scheduling Mode(如 FIFO),下方提供可展開的 Event Timeline 地區。
表 1. SparkUI頁簽介紹
頁簽 | 描述 |
Jobs | 所有運行作業的詳細資料。 |
Stages | Spark作業所有Stage的狀態資訊。 |
Storage | 顯示持久化的RDD以及DF的儲存資訊。 |
Environment | Spark作業啟動並執行環境。Spark作業啟動時,從運行環境、設定檔、使用者傳入參數共同構建而來。 |
Executors | Spark作業啟動並執行Executors狀態資訊。 |
SQL | 計算引擎執行SQL的詳細資料。 |
Kyuubi Query Engine | 展示JDBC Session資訊。 |
查看作業運行狀態
通過SparkUI介面查看作業運行狀態
通過SparkUI介面可以查看Spark作業運行狀態。
當計算引擎作業狀態為运行中時,才可以通過SparkUI介面查看作業運行狀態。
查看已完成的Spark作業需要開通History Server。
登入Lindorm管理主控台。
在執行個體列表頁,單擊目標執行個體ID。
在左側導覽列,選擇,可以查看正在啟動並執行計算引擎作業。
單擊需要查看計算引擎作業的WebUI地址,通過寬表引擎使用者名稱和密碼登入SparkUI。
說明寬表引擎預設使用者名和密碼的擷取方式:在 数据库连接頁面,單擊宽表引擎頁簽,複製預設使用者名及密碼。
在頂部功能表列單擊Executors,查看運行中的計算引擎作業和所有的Executor。
Executors 頁面上方為 Summary 匯總區,按 Active、Dead、Total 分行展示 Executor 數量及彙總指標;下方為 Executors 詳情表,列出各 Executor 的 ID、Address、Status、資源用量(Storage Memory、Disk Used、Cores)及任務指標(Active Tasks、Failed Tasks、Complete Tasks、Total Tasks、Task Time (GC Time))等資訊。
在Executors列表中,單擊Logs列的stdout或stderr查看作業記錄,單擊Thread Dump列查看線程堆棧資訊,單擊System Status Dump列查看Executor系統狀態資訊。
說明單擊stdout可以查看標準輸出日誌。
單擊stderr可以查看標準錯誤輸出日誌。
通過HDFS Shell工具查看作業作業記錄
計算引擎作業的作業記錄會被系統同步並儲存至底層的檔案引擎中,如果需要查看的計算引擎作業中斷,您可以開通Lindorm檔案引擎,並使用HDFS Shell工具查看作業的作業記錄。
建議您在提交JAR作業時,在Main函數開始時初始化SparkSession對象,避免部分異常作業記錄無法同步至檔案引擎中。
如果Lindorm執行個體的計算引擎服務規模較大,計算引擎作業作業記錄可能給DFS造成較大的壓力。您可以在計算引擎作業啟動參數中配置spark.dfsLog.executor.enabled=false,該參數指定Executor日誌不儲存至DFS,而計算引擎作業Driver作業記錄的收集不會受到影響。
登入Lindorm管理主控台。
在執行個體列表頁,單擊目標執行個體ID。
在左側導覽列,選擇,擷取JobId,例如:
562f7c98-2a66-****。使用HDFS Shell工具查看日誌,HDFS Shell工具的配置方法請參見串連指南。
計算引擎作業的日誌儲存目錄為
/ldspark/ldspark-logs/${JobId},Driver日誌儲存目錄為__driver_logs__,Executor日誌儲存目錄為__executor_logs__/${EXECUTOR_ID}。以查看Driver的stderr作業記錄為例,請執行以下語句:$HADOOP_HOME/bin/hadoop fs -cat /ldspark/ldspark-logs/${JobId}/__driver_logs__/stderr | less說明您也可以通過FUSE用戶端將檔案引擎目錄掛載至ECS進行訪問,具體操作請參見通過HDFS FUSE串連並使用LindormDFS。