在 AWS Glue 中設定 Spark 任務的任務屬性
若是在 AWS Glue 主控台定義任務,請提供屬性值以控制 AWS Glue 執行階段環境。
定義 Spark 任務的任務屬性
以下清單說明 Spark 任務的屬性。如需了解 Python shell 任務的屬性,請參閱 為 Python shell 任務定義任務屬性。如需了解串流 ETL 任務的屬性,請參閱 定義串流 ETL 任務的任務屬性。
這些內容會依它們在 AWS Glue 主控台 Add job (新增任務) 精靈中出現的順序列出。
- 名稱
-
提供長度上限為 255 個字元的 UTF-8 字串。
- 描述
-
提供最多 2,048 個字元的選用描述。
- IAM 角色
-
指定 IAM 角色以授權使用執行工作和存取資料存放區所需的資源。如需在 AWS Glue 執行任務之許可的詳細資訊,請參閱 適用於 AWS Glue 的 Identity and Access Management。
- Type
-
ETL 任務的類型。這是根據您選取的資料來源類型自動設定的。
-
Spark 使用任務命令
glueetl執行 Apache Spark ETL 指令碼。 -
Spark 串流使用任務命令
gluestreaming執行 Apache Spark 串流 ETL 指令碼。如需更多詳細資訊,請參閱 在 AWS Glue 中串流 ETL 任務。 -
Python Shell 使用任務命令
pythonshell執行 Python 指令碼。如需更多詳細資訊,請參閱 在 AWS Glue 中設定 Python Shell 任務的任務屬性。
-
- AWS Glue 版本
-
AWS Glue 版本會決定任務可用的 Apache Spark 和 Python 版本,如下表中指定。
AWS Glue 版本 支援的 Spark 和 Python 版本 5.0 -
Spark 3.5.4
-
Python 3.11
4.0 -
Spark 3.3.0
-
Python 3.10
3.0 -
Spark 3.1.1
-
Python 3.7
-
- 語言
-
ETL 指令碼中的程式碼定義了任務的邏輯。指令碼可在 Python 或 Scala 中編寫。您可以選擇任務執行的指令碼是由 AWS Glue 產生或由您提供。您可以在 Amazon Simple Storage Service (Amazon S3) 中提供指令碼名稱和位置。請確認路徑中沒有跟指令碼目錄名稱相同的檔案。若要進一步了解如何編寫指令碼,請參閱 AWS Glue 程式設計指南。
- 工作者類型
-
可使用以下工作者類型:
AWS Glue 工作者上可用的資源是以 DPU 來衡量。DPU 是相對的處理能力,包含 4 個 vCPU 的運算容量和 16 GB 的記憶體。
-
G.025X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 0.25 個 DPU (2 個 vCPU、4 GB 記憶體),外加 84 GB 磁碟 (大約 34 GB 可用)。我們建議低容量串流任務採用這種工作者類型。此工作者類型僅適用於 AWS Glue 3.0 版或更新版本串流任務。 -
G.1X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 1 個 DPU (4 個 vCPU、16 GB 記憶體),外加 94 GB 磁碟 (大約 44 GB 可用)。我們建議將此工作者類型用於資料轉換、聯結和查詢等工作負載,以提供可擴展且符合成本效益的方式來執行大部分任務。 -
G.2X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 2 個 DPU (8 個 vCPU、32 GB 記憶體),外加 138 GB 磁碟 (大約 78 GB 可用)。我們建議將此工作者類型用於資料轉換、聯結和查詢等工作負載,以提供可擴展且符合成本效益的方式來執行大部分任務。 -
G.4X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 4 個 DPU (16 個 vCPU、64 GB 記憶體),外加 256 GB 磁碟 (大約 230 GB 可用)。我們建議工作負載包含最嚴苛轉換、彙總、聯結和查詢的任務採用這種工作者類型。 -
G.8X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 8 個 DPU (32 個 vCPU、128 GB 記憶體),外加 512 GB 磁碟 (大約 485 GB 可用)。我們建議工作負載包含最嚴苛轉換、彙總、聯結和查詢的任務採用這種工作者類型。 -
G.12X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 12 個 DPU (48 個 vCPU、192 GB 記憶體),外加 768 GB 磁碟 (大約 741 GB 可用)。對於具有需要大量運算容量的非常大且資源密集的工作負載的任務,我們建議使用此工作者類型。 -
G.16X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 16 個 DPU (64 個 vCPU、256 GB 記憶體),外加 1024 GB 磁碟 (大約 996 GB 可用)。對於具有需要最大運算容量的最大且資源最密集的工作負載的任務,我們建議使用此工作者類型。 -
R.1X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 1 個具有記憶體最佳化組態的 DPU。對於經常遇到記憶體不足錯誤或需要高記憶體與 CPU 比率的記憶體密集型工作負載,建議使用此工作者類型。 -
R.2X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 2 個具有記憶體最佳化組態的 DPU。對於經常遇到記憶體不足錯誤或需要高記憶體與 CPU 比率的記憶體密集型工作負載,建議使用此工作者類型。 -
R.4X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 4 個具有記憶體最佳化組態的 DPU。對於經常遇到記憶體不足錯誤或需要高記憶體與 CPU 比率的大型記憶體密集型工作負載,建議使用此工作者類型。 -
R.8X– 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會映射到 8 個具有記憶體最佳化組態的 DPU。對於經常遇到記憶體不足錯誤或需要高記憶體與 CPU 比率的非常大型的記憶體密集型工作負載,建議使用此工作者類型。
工作者類型規格
下表提供了所有可用 G 工作者類型的詳細規格:
G 工作者類型規格 工作者類型 每個節點的 DPU vCPU 記憶體 (GB) 磁碟 (GB) 可用磁碟空間 (GB) 每個節點的 Spark 執行器 G.025X 0.25 2 4 84 34 1 G.1X 1 4 16 94 44 1 G.2X 2 8 32 138 78 1 G.4X 4 16 64 256 230 1 G.8X 8 32 128 512 485 1 G.12X 12 48 192 768 741 1 G.16X 16 64 256 1,024 996 1 重要:G.12X 和 G.16X 工作者類型以及所有 R 工作者類型 (R.1X 到 R.8X) 具有更高的啟動延遲。
我們會根據您執行 ETL 任務所使用的 DPU 數量,以小時費率計費。如需詳細資訊,請參閱 AWS Glue 定價頁面
。 對於 AWS Glue 1.0 版或更早版本的任務,當您使用主控台設定任務並指定 Worker type (工作者類型) 為 Standard (標準),會設定 Maximum capacity (容量上限),並且 Number of workers (工作者數目) 會變成 Maximum capacity (容量上限) - 1。如果您使用 AWS Command Line Interface (AWS CLI) 或 AWS 開發套件,則您可以指定 Max capacity (容量上限) 參數,或者您可以指定 Worker type (工作者類型) 和 Number of workers (工作者數目)。
對於 AWS Glue 2.0 版或更新版本的任務,您無法指定容量上限。反之,您必須指定 Worker type (工作者類型) 與 Number of workers (工作者數目)。
在以下 AWS 區域,
G.4X和G.8X工作者類型僅適用於 AWS Glue 3.0 版或更新版本的 Spark ETL 任務:美國東部 (俄亥俄)、美國東部 (維吉尼亞北部)、美國西部 (加利佛尼亞北部)、美國西部 (奧勒岡)、亞太地區 (孟買)、亞太地區 (首爾)、亞太地區 (新加坡)、亞太地區 (雪梨)、亞太地區 (東京)、加拿大 (中部)、歐洲 (法蘭克福)、歐洲 (愛爾蘭)、歐洲 (倫敦)、歐洲 (西班牙)、歐洲 (斯德哥爾摩) 和南美洲 (聖保羅)。在以下 AWS 區域,
G.12X、G.16X和R.1X至R.8X工作者類型僅適用於 AWS Glue 4.0 版或更新版本的 Spark ETL 任務:美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、美國東部 (俄亥俄)、歐洲 (愛爾蘭) 和歐洲 (法蘭克福)。未來版本將支援其他區域。 -
- 請求的工作者數目
-
對於大多數工作者類型,您必須指定任務時執行所分配的工作者數目。
- 任務書籤
-
指定 AWS Glue 在任務執行時如何處理狀態資訊。您可以讓任務書籤記住之前處理過的資料、更新狀態資訊,或是忽略狀態資訊。如需更多詳細資訊,請參閱 使用任務書籤追蹤處理的資料。
- 任務執行佇列
-
指定任務執行是否在稍後因服務配額而無法立即執行時排入佇列。
核取時,會為任務執行啟用任務執行佇列。如果未填入,系統不會考慮將任務執行排入佇列。
如果此設定與任務執行中設定的值不相符,則會使用任務執行欄位中的值。
- Flex 執行
-
當您使用 AWS Studio 或 API 設定任務時,可以指定一個標準或彈性的任務執行類別。您的任務可能具有不同程度的優先順序和時間敏感度。標準執行類別非常適合需要快速的任務啟動和專用資源的時間敏感型工作負載。
彈性執行類別適用於非緊急任務,例如生產前任務、測試和一次性資料載入。使用 AWS Glue 3.0 或更高版本和
G.1X或G.2X工作者類型的任務支援彈性任務執行。新的工作者類型 (G.12X、G.16X和R.1X至R.8X) 不支援彈性執行。彈性任務執行基於在任何時間點執行的工作者數目計費。針對執行中的彈性任務執行,可新增或移除工作者數目。計費方式不是簡單的
Max Capacity*Execution Time,每個工作者都會計入任務執行期間的時間。計費為 (Number of DPUs per worker*time each worker ran) 的總和。 - 重試次數
-
指定 AWS Glue 若失敗時應自動重新啟動任務的次數 (從 0 到 10)。達到逾時限制的任務不會重新啟動。
- 任務逾時
-
設定執行時間上限 (單位為分鐘)。上限為 7 天或 10,080 分鐘。否則,任務會擲回例外狀況。
在值保留空白時,逾時預設為 2,880 分鐘。
逾時值大於 7 天的任何現有 AWS Glue 任務將預設為 7 天。例如,如果您為批次任務指定了 20 天的逾時,則會在第 7 天停止。
任務逾時的最佳實務
任務會根據執行時間計費。為了避免意外費用,請設定適合您任務預期執行時間的逾時值。
- 進階屬性
-
- 指令碼檔案名稱
-
您的任務的唯一指令碼名稱。無法命名為未命名任務。
- 指令碼路徑
-
指令碼的 Amazon S3 位置。路徑格式必須為
s3://bucket/prefix/path/。其必須以斜線 (/) 結尾,且不包含任何檔案。 - 任務指標
-
當此任務執行時,開啟或關閉建立 Amazon CloudWatch 指標。若要檢視分析資料,您必須啟用此選項。如需如何開啟和視覺化呈現指標的詳細資訊,請參閱任務監控與偵錯。
- 任務可觀測性指標
-
在此任務執行時,開啟建立其他可觀測性 CloudWatch 指標。如需更多詳細資訊,請參閱 使用 AWS Glue 可觀測性指標進行監控。
- 連續記錄
-
開啟連續記錄到 Amazon CloudWatch。如果未啟用此選項,則只有在任務完成後才能使用日誌。如需詳細資訊,請參閱 記錄 AWS Glue 任務。
- Spark UI
-
啟用 Spark UI 來監控此任務。如需更多詳細資訊,請參閱 為 AWS Glue 任務啟用 Apache Spark web UI。
- Spark UI 日誌路徑
-
啟用 Spark UI 時寫入日誌的路徑。
- Spark UI 記錄和監控組態
-
請選擇下列其中一個選項:
標準:使用 AWS Glue 任務執行 ID 作為檔案名稱寫入日誌。在 AWS Glue 主控台中開啟 Spark UI 監控。
舊版:使用 'spark-application-{timestamp}' 作為檔案名稱寫入日誌。請勿開啟 Spark UI 監控。
標準和舊版:將日誌同時寫入標準和舊版位置。在 AWS Glue 主控台中開啟 Spark UI 監控。
- 最大並行數量
-
設定此任務允許並行執行的最大數量。預設為 1。達到此閾值時,會傳回錯誤。可指定的最大值由服務限制來控制。例如,新的執行個體啟動時,如果有先前的任務仍在執行,您可能會想要傳回錯誤,以防相同任務的兩個執行個體同時執行。
- 暫時路徑
-
提供 Amazon S3 裡的任務目錄位置,可在 AWS Glue 執行指令碼時寫入暫時的中繼結果。請確認路徑中沒有跟暫時目錄名稱相同的檔案。當 AWS Glue 讀取和寫入至 Amazon Redshift 並使用特定的 AWS Glue 轉換時,會使用到此目錄。
注意
如果區域中尚未存在儲存貯體,則 AWS Glue Glue 會為任務建立暫時儲存貯體。此儲存貯體可能允許公開存取。您可以修改 Amazon S3 中的儲存貯體以設定的公有存取封鎖,或稍後在該區域的所有任務完成後刪除儲存貯體。
- 延遲通知閾值 (分鐘)
-
設定傳送延遲通知之前所要經過的時間閾值 (以分鐘為單位)。您可以設定這個閾值,以在
RUNNING、STARTING或STOPPING任務執行所花的時間超過預期分鐘數時傳送通知。 - 安全組態
-
從清單中選擇安全組態。安全設定指定在 Amazon S3 目標上如何加密資料:不加密、使用 AWS KMS 受管金鑰 (SSE-KMS) 或 Amazon S3 管理的加密金鑰 (SSE-S3) 進行伺服器端加密。
- 伺服器端加密
-
如果您選擇此選項,則 ETL 任務寫入 Amazon S3 時,資料會在靜態時加密 (使用 SSE-S3 加密)。您的 Amazon S3 資料目標和寫入 Amazon S3 暫時目錄的任何資料都會加密。系統會以任務參數的形式傳遞此選項。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的透過 Amazon S3 受管加密金鑰 (SSE-S3) 使用伺服器端加密來保護資料。
重要
如果指定安全組態,則會忽略此選項。
- 使用 Glue 資料目錄做為 Hive 中繼存放區
-
選取以使用 AWS Glue Data Catalog 做為 Hive 中繼存放區。此任務所用的 IAM 角色必須具有
glue:CreateDatabase許可。稱為「預設」的資料庫隨即在 Data Catalog 中建立 (如當時該資料庫尚未存在)。
- 連線
-
選擇 VPC 組態,以存取位於虛擬私有雲端 (VPC) 中的 Amazon S3 資料來源。您可以在 AWS Glue 中建立和管理網路連線。如需更多詳細資訊,請參閱 連線至資料。
- Libraries (程式庫)
-
- Python 程式庫路徑,相依的 JAR 路徑和參考檔案路徑
-
如果您的指令碼需要這些選項,請進行指定。定義此任務時,您可以為這些選項定義以逗號分隔的 Amazon S3 路徑。執行任務時,您可以覆寫這些路徑。如需更多詳細資訊,請參閱 提供您的自訂指令碼。
- 任務參數
-
一組金鑰/值對,會以具名參數的形式傳遞至指令碼。這些是指令碼執行時使用的預設值,但您可以在觸發時或在執行任務階段覆寫。您必須在索引鍵名稱前加上
--;例如:--myKey。使用 AWS Command Line Interface 時,您可以傳遞任務參數作為對映。如需範例,請參閱 在 AWS Glue 中傳遞和存取 Python 參數 的 Python 參數。
- Tags (標籤)
-
使用 Tag key (標籤金鑰) 和選用的 Tag value (標籤值),標記您的任務。標籤鍵在建立後,將是唯讀狀態。應用標籤至某些資源,有助於您對其進行整理和識別。如需更多詳細資訊,請參閱 AWS Glue 中的 AWS 標籤。
存取 Lake Formation 受管資料表任務的限制
建立讀取或寫入由 AWS Lake Formation 受管的資料表的任務時,請記住下列注意事項和限制:
-
使用儲存格層級篩選條件存取資料表的任務不支援下列功能: