本文為您介紹如何通過阿里雲Log Service收集Spark作業的日誌。
前提條件
- 已在E-MapReduce on ACK控制台建立Spark叢集,詳情請參見快速使用EMR on ACK。
- 已開通阿里雲Log ServiceSLS,詳情請參見快速入門。
操作步驟
- 啟用Log Service組件Logtail,詳情請參見步驟一:啟用Log Service組件Logtail。說明 如果已啟用Log Service組件Logtail,則直接執行步驟2。
- 進入Log Service對應Project的控制台。
- 登入Container Service管理主控台。
- 在控制台左側導覽列中,單擊叢集。
- 在叢集列表頁面,單擊目的地組群名稱或者目的地組群右側操作列下的詳情。
- 在叢集資訊頁面,單擊上方的叢集資源頁簽。
- 單擊Log ServiceProject所在行的連結。進入Log Service對應Project的控制台。
- 在日誌庫頁簽中,建立兩個Logstore。本文樣本建立的兩個Logstore分別命名為spark-driver-log和spark-executor-log。建立Logstore詳情,請參見步驟二:建立Project和Logstore。
- 在spark-driver-log的Logstore中,執行以下操作。
- 新增Logtail配置,接入資料選擇Kubernetes標準輸出,在配置流程中選擇已有的Kubernetes機器組。
- 選擇 下已有的Kubernetes機器組。
- 在外掛程式配置文字框內,輸入以下內容。
{ "inputs": [ { "detail": { "IncludeEnv": { "SPARKLOGENV": "spark-driver" }, "Stderr": true, "Stdout": true, "BeginLineCheckLength": 10, "BeginLineRegex": "\\d+/\\d+/\\d+.*" }, "type": "service_docker_stdout" } ] }
- 在spark-executor-log的Logstore中,參照步驟4在外掛程式配置文字框中,輸入以下內容。
{ "inputs": [ { "detail": { "IncludeEnv": { "SPARKLOGENV": "spark-executor" }, "Stderr": true, "Stdout": true, "BeginLineCheckLength": 10, "BeginLineRegex": "\\d+/\\d+/\\d+.*" }, "type": "service_docker_stdout" } ] }
- 開啟日誌庫Logstore索引,詳情請參見建立索引。完成以上步驟,即可在SLS上查詢到作業的日誌了。