本文為您介紹如何通過阿里云日志服務收集Spark作業的日志。

前提條件

  • 已在E-MapReduce on ACK控制臺創建Spark集群,詳情請參見快速入門。
  • 已開通阿里云日志服務SLS,詳情請參見快速入門。

操作步驟

  1. 啟用日志服務組件Logtail,詳情請參見步驟一:啟用日志服務組件Logtail
    說明 如果已啟用日志服務組件Logtail,則直接執行步驟2。
  2. 進入日志服務對應Project的控制臺。
    1. 登錄容器服務管理控制臺。
    2. 在控制臺左側導航欄中,單擊集群。
    3. 集群列表頁面,單擊目標集群名稱或者目標集群右側操作列下的詳情。
    4. 集群信息頁面,單擊上方的集群資源頁簽。
    5. 單擊日志服務Project所在行的鏈接。
      進入日志服務對應Project的控制臺。
  3. 日志庫頁簽中,新建兩個Logstore。
    本文示例新建的兩個Logstore分別命名為spark-driver-log和spark-executor-log。創建Logstore詳情,請參見步驟二:創建Project和Logstore
  4. 在spark-driver-log的Logstore中,執行以下操作。
    1. 新增Logtail配置,接入數據選擇Kubernetes標準輸出,在配置流程中選擇已有的Kubernetes機器組。
    2. 選擇數據接入 > logtail配置下已有的Kubernetes機器組。
    3. 插件配置文本框內,輸入以下內容。
      {
          "inputs": [
              {
                  "detail": {
                      "IncludeEnv": {
                          "SPARKLOGENV": "spark-driver"
                      },
                      "Stderr": true,
                      "Stdout": true,
                      "BeginLineCheckLength": 10,
                      "BeginLineRegex": "\\d+/\\d+/\\d+.*"
                  },
                  "type": "service_docker_stdout"
              }
          ]
      }
  5. 在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"
            }
        ]
    }
  6. 開啟日志庫Logstore索引,詳情請參見創建索引。
    完成以上步驟,即可在SLS上查詢到作業的日志了。result