

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 AWS Glue 任務啟用 Apache Spark web UI
<a name="monitor-spark-ui-jobs"></a>

您可以使用 Apache Spark Web UI 來監控和偵錯在 AWS Glue 任務系統上執行的 AWS Glue ETL 任務。您可以使用 AWS Glue 主控台或 AWS Command Line Interface (AWS CLI) 來設定 Spark UI。

每 30 秒，AWS Glue 會將 Spark 事件日誌備份至您指定的 Amazon S3 路徑。

**Topics**
+ [設定 Spark UI (主控台)](#monitor-spark-ui-jobs-console)
+ [設定 Spark UI (AWS CLI)](#monitor-spark-ui-jobs-cli)
+ [使用筆記本為工作階段設定 Spark UI](#monitor-spark-ui-sessions)
+ [啟用滾動日誌](#monitor-spark-ui-rolling-logs)

## 設定 Spark UI (主控台)
<a name="monitor-spark-ui-jobs-console"></a>

使用 AWS 管理主控台，依照以下步驟來設定 Spark UI。建立 AWS Glue 任務時，預設會啟用 Spark UI。

**建立或編輯工作時開啟 Spark UI**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) 開啟 AWS Glue主控台。

1. 在導覽窗格中，選擇 **Jobs (任務)**。

1. 選擇**新增任務**，或選取現有任務。

1. 在**任務詳細資料**中，開啟**進階屬性**。

1. 在 **Spark UI** 索引標籤下方，選擇將 **Spark UI 日誌寫入 Amazon S3**。

1. 指定 Amazon S3 路徑以用於存放任務的 Spark 事件日誌。請注意，如果在工作中使用安全組態，加密也會套用至 Spark UI 日誌檔案。如需詳細資訊，請參閱[加密 寫入的資料 AWS Glue](encryption-security-configuration.md)。

1. 在 **Spark UI 記錄和監控組態**下方：
   + 如果您要在 AWS Glue 主控台中產生要檢視的日誌，請選取**標準**。
   + 如果要產生日誌以在 Spark 歷史記錄伺服器中檢視，請選取**舊版**。
   + 您也可以選擇產生兩者。

## 設定 Spark UI (AWS CLI)
<a name="monitor-spark-ui-jobs-cli"></a>

若要產生使用 Spark UI 檢視的日誌，請在 AWS Glue 主控台中使用 AWS CLI 將下列任務參數傳遞給AWS Glue任務。如需詳細資訊，請參閱[在 Glue AWS 任務中使用任務參數](aws-glue-programming-etl-glue-arguments.md)。

```
'--enable-spark-ui': 'true',
'--spark-event-logs-path': 's3://s3-event-log-path'
```

若要將日誌分發至其舊版位置，請將 `--enable-spark-ui-legacy-path` 參數設定為 `"true"`。如果您不想要產生這兩種格式的日誌，請移除 `--enable-spark-ui` 參數。

## 使用筆記本為工作階段設定 Spark UI
<a name="monitor-spark-ui-sessions"></a>

**警告**  
AWS Glue 互動式工作階段目前不支援主控台中的 Spark UI。設定 Spark 歷史記錄伺服器。

 如果您使用 AWS Glue 筆記本，請在開始工作階段之前設定 SparkUI 組態。為此，請使用 `%%configure` 儲存格魔術命令：

```
%%configure { “--enable-spark-ui”: “true”, “--spark-event-logs-path”: “s3://path” }
```

## 啟用滾動日誌
<a name="monitor-spark-ui-rolling-logs"></a>

 為 AWS Glue 任務啟用 SparkUI 和滾動日誌事件檔案有幾個優點：
+  滾動日誌事件檔案 – 啟用滾動日誌事件檔案後， 會針對任務執行的每個步驟 AWS Glue 產生個別日誌檔案，讓您更輕鬆地識別特定階段或轉換的特定問題並進行疑難排解。
+  更好的日誌管理 – 滾動日誌事件檔案有助於更有效率地管理日誌檔案。日誌不是單一但可能很大的日誌檔案，而是會根據任務執行階段分區成更小、更易於管理的檔案。這可以簡化日誌封存、分析和故障診斷。
+  改善容錯能力 – 如果 AWS Glue 任務失敗或中斷，滾動日誌事件檔案可以提供有關最後一個成功階段的寶貴資訊，讓您更輕鬆地從該點繼續任務，而不是從頭開始。
+  成本最佳化 – 透過啟用滾動日誌事件檔案，可以節省與日誌檔案相關聯的儲存成本。您可以儲存更小、更易於管理的日誌檔案，而非儲存單一、可能很大的日誌檔案，這可能更具成本效益，尤其對於長時間執行或複雜任務。

 在新環境中，使用者可以透過以下方法明確啟用滾動日誌：

```
'—conf': 'spark.eventLog.rolling.enabled=true'
```

或

```
'—conf': 'spark.eventLog.rolling.enabled=true —conf 
spark.eventLog.rolling.maxFileSize=128m'
```

 啟動滾動日誌時，`spark.eventLog.rolling.maxFileSize` 會指定事件日誌檔案的大小上限，然後再滾動。如果未指定此可選參數，其會預設為 128 MB。最小值為 10 MB。

 所有產生的滾動日誌事件檔案總和上限為 2 GB。對於沒有滾動日誌支援 AWS Glue 的任務，SparkUI 支援的日誌事件檔案大小上限為 0.5 GB。

可以透過傳遞其他組態來關閉串流工作的滾動日誌。請注意，非常大的日誌檔案可能需要昂貴的維護成本。

若要關閉滾動日誌，請提供下列組態：

```
'--spark-ui-event-logs-path': 'true',
'--conf': 'spark.eventLog.rolling.enabled=false'
```