設定 Spark 工作的工作屬性 AWS Glue - AWS 連接詞

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

設定 Spark 工作的工作屬性 AWS Glue

當您在主控 AWS Glue 台上定義工作時,您會提供屬性值以控制 AWS Glue 執行階段環境。

定義 Spark 任務的任務屬性

以下清單說明 Spark 任務的屬性。如需了解 Python shell 任務的屬性,請參閱 為 Python shell 任務定義任務屬性。如需串流ETL工作的屬性,請參閱定義串流 ETL 任務的任務屬性

這些內容會依照它們在 AWS Glue 主控台的 [新增工作] 精靈中顯示的順序列出。

名稱

提供 UTF -8 個字串,其長度上限為 255 個字元。

描述

提供最多 2048 個字元的選擇性說明。

IAM角色

指定IAM用於授權用於執行工作和存取資料存放區的資源的角色。如需中執行工作之權限的詳細資訊 AWS Glue,請參閱的身分識別與存取管理 AWS 連接詞

Type

ETL工作的類型。這會根據您選取的資料來源類型自動設定。

AWS Glue 版本

AWS Glue 版本確定可用於作業的 Apache 星火和 Python 的版本,如下表中所指定。

AWS Glue 版本 支援的 Spark 和 Python 版本
4.0
  • Spark 3.3.0

  • Python 3.10

3.0
  • Spark 3.1.1

  • Python 3.7

2.0
  • Spark 2.4.3

  • Python 3.7

1.0
  • Spark 2.4.3

  • Python 2.7

  • Python 3.6

0.9
  • Spark 2.2.1

  • Python 2.7

語言

ETL指令碼中的程式碼會定義工作的邏輯。指令碼可在 Python 或 Scala 中編寫。您可以選擇工作執行的命令檔是由您產生 AWS Glue 還是由您提供。您可以在 Amazon Simple Storage Service (Amazon S3) 中提供指令碼名稱和位置。請確認路徑中沒有跟指令碼目錄名稱相同的檔案。若要進一步了解如何編寫指令碼,請參閱 AWS Glue 編程指南

工作者類型

可使用以下工作者類型:

AWS Glue 工作人員上可用的資源在中進行衡量DPUs。A DPU 是處理能力的相對度量,由 4 vCPUs 個運算容量和 16 GB 的記憶體組成。

  • G.1X – 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會對應至具有 84GB 磁碟 DPU (約 34GB 可用空間) 的 1 個 (4 vCPUs、16 GB 記憶體)。我們建議將此工作者類型用於資料轉換、聯結和查詢等工作負載,以提供可擴展且符合成本效益的方式來執行大部分任務。

  • G.2X – 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會對應至配備 128GB 磁碟的 2 個 DPU (8 vCPUs、32 GB 記憶體) (大約可用 77GB)。我們建議將此工作者類型用於資料轉換、聯結和查詢等工作負載,以提供可擴展且符合成本效益的方式來執行大部分任務。

  • G.4X – 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會對應至 4 個 DPU (16 vCPUs、64 GB 記憶體) 與 256GB 磁碟 (約 235GB 可用空間)。我們建議工作負載包含最嚴苛轉換、彙總、聯結和查詢的任務採用這種工作者類型。此 Worker 類型僅適用於下列 AWS 區域的 3.0 AWS Glue 版或更新版本 Spark ETL 工作:美國東部 (俄亥俄)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、亞太區域 (新加坡)、亞太區域 (雪梨)、亞太區域 (東京)、加拿大 (中部)、歐洲 (法蘭克福)、歐洲 (愛爾蘭) 和歐洲 (斯德哥爾摩)。

  • G.8X – 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會對應至具有 512GB 磁碟 DPU (約 487GB 可用空間) 的 8 個 (32 vCPUs、128 GB 記憶體)。我們建議工作負載包含最嚴苛轉換、彙總、聯結和查詢的任務採用這種工作者類型。此 Worker 類型僅適用於 3.0 AWS Glue 版或更新版本的 Spark ETL 工作,與 G.4X Worker 類型支援的相同 AWS 區域中。

  • G.025X – 選擇這種類型時,您也要提供 工作者數目 的值。每個工作者都會對應至 0.25 DPU (2 vCPUs、4 GB 記憶體),並使用 84GB 磁碟 (約 34GB 可用空間)。我們建議低容量串流任務採用這種工作者類型。此背景工作類型僅適用於 3.0 AWS Glue 版串流工作。

我們會根據用於執行ETL作業的數量,按小時費率向您收取費DPUs用。如需詳細資訊,請參閱 AWS Glue 定價頁面

對於 1.0 AWS Glue 版或更早版本的工作,當您使用主控台設定工作並指定 [標準] 的 [Worker] 類型時,會設定 [最大容量],且 Worker 數目會變成 [最大容量-1] 的值。如果您使用 AWS Command Line Interface (AWS CLI) 或 AWS SDK,您可以指定「最大容量」參數,或同時指定 Worker 類型Worker 數目

對於 2.0 AWS Glue 版或更新版本的工作,您無法指定最大容量。反之,您必須指定 Worker type (工作者類型)Number of workers (工作者數目)

要求的工人數

對於大多數工作者類型,您必須指定任務時執行所分配的工作者數目。

任務書籤

指定工作執行時 AWS Glue 處理狀態資訊的方式。您可以讓任務書籤記住之前處理過的資料、更新狀態資訊,或是忽略狀態資訊。如需詳細資訊,請參閱使用任務書籤追蹤處理的資料

Job 執行佇列

指定由於服務配額而無法立即執行時,是否將工作執行排入佇列,以便稍後執行。

核取此選項時,會為工作執行啟用工作執行佇列。如果未填入,則不會將工作執行視為佇列。

如果此設定與工作執行中設定的值不符,則會使用工作執行欄位中的值。

柔性執行

當您使用 AWS Studio 設定工作時,或者API您可以指定標準或彈性的工作執行類別。您的任務可能具有不同程度的優先順序和時間敏感度。標準執行類別非常適合需要快速的任務啟動和專用資源的時間敏感型工作負載。

彈性執行類別適用於非緊急任務,例如生產前任務、測試和一次性資料載入。使用 3.0 AWS Glue 版或更新版本和/G.1XG.2X Worker 類型的作業支援彈性作業執行。

彈性任務執行基於在任何時間點執行的工作者數目計費。針對執行中的彈性任務執行,可新增或移除工作者數目。計費方式不是簡單的 Max Capacity * Execution Time,每個工作者都會計入任務執行期間的時間。計費為 (Number of DPUs per worker * time each worker ran) 的總和。

如需詳細資訊,請參閱 AWS Studio 中的說明面板,或任務任務執行

重試次數

指定工作失敗時 AWS Glue 應自動重新啟動的次數 (從 0 到 10)。達到逾時限制的任務不會重新啟動。

任務逾時

設定執行時間上限 (單位為分鐘)。批次任務的預設值為 2880 分鐘 (48 小時)。當任務執行時間超過此上限時,任務執行狀態會變更為 TIMEOUT

串流工作的逾時值必須小於 7 天或 10080 分鐘。當值保留空白時,如果您尚未設定維護時段,工作將在 7 天後重新啟動。如果您已設定維護時段,則維護時段將在 7 天後重新啟動。

工作逾時的最佳做法

工作會根據執行時間計費。為避免未預期的費用,請針對工作的預期執行時間設定適當的逾時值。

進階屬性
腳本文件名

工作的唯一指令碼名稱。無法命名為 「無標題」工作

腳本路徑

指令碼的 Amazon S3 位置。該路徑的格式必須是 s3://bucket/prefix/path/。它必須以斜線 (/) 結尾,且不包含任何檔案。

任務指標

執行此任務時,開啟或關閉 Amazon CloudWatch 指標的建立。若要檢視分析資料,您必須啟用此選項。如需如何開啟和視覺化呈現指標的詳細資訊,請參閱任務監控與偵錯

Job 觀察度量

執行此工作時,開啟其他可觀察 CloudWatch 度量的建立。如需詳細資訊,請參閱使用 AWS Glue 可觀測性指標進行監控

連續記錄

開啟連續日誌記錄到 Amazon CloudWatch。如果未啟用此選項,則只有在任務完成後才能使用日誌。如需詳細資訊,請參閱 持續記錄 AWS Glue 任務

Spark UI

啟用 Spark UI 來監控此任務。如需詳細資訊,請參閱為 AWS Glue 任務啟用 Apache Spark web UI

星火 UI 日誌路徑

啟用 Spark UI 時寫入日誌的路徑。

星火 UI 日誌記錄和監控配置

請選擇下列其中一個選項:

  • 標準:使用 AWS Glue 作業執行 ID 作為檔案名稱來寫入記錄。開啟主控台中的星火使用者介面監 AWS Glue 控。

  • 舊版:使用「火花應用程序-{時間戳}」作為文件名寫入日誌。不要打開星火 UI 監控。

  • 標準和舊版:將記錄檔寫入標準和舊版位置。開啟主控台中的星火使用者介面監 AWS Glue 控。

最大並行數量

設定此任務允許並行執行的最大數量。預設為 1。達到此閾值時,會傳回錯誤。可指定的最大值由服務限制來控制。例如,新的執行個體啟動時,如果有先前的任務仍在執行,您可能會想要傳回錯誤,以防相同任務的兩個執行個體同時執行。

暫時路徑

提供 Amazon S3 中工作目錄的位置, AWS Glue 執行指令碼時會寫入臨時中間結果。請確認路徑中沒有跟暫時目錄名稱相同的檔案。當 AWS Glue 讀取和寫入 Amazon Redshift 和某些 AWS Glue 轉換時,會使用此目錄。

注意

AWS Glue 如果某個區域中尚未存在值區,則會為工作建立暫時值區。此儲存貯體可能允許公開存取。您可以修改 Amazon S3 中的儲存貯體以設定的公有存取封鎖,或稍後在該區域的所有任務完成後刪除儲存貯體。

延遲通知閾值 (分鐘)

設定傳送延遲通知之前所要經過的時間閾值 (以分鐘為單位)。您可以設定這個閾值,以在 RUNNINGSTARTINGSTOPPING 任務執行所花的時間超過預期分鐘數時傳送通知。

安全組態

從清單中選擇安全組態。安全組態會指定 Amazon S3 目標上的資料加密方式:不加密、使用 AWS KMS受管金鑰 (SSE-KMS) 的伺服器端加密,或 Amazon S3 受管加密金鑰 (SSE-S3)。

伺服器端加密

如果選取此選項,則在ETL任務寫入 Amazon S3 時,會使用 SSE-S3 加密對靜態資料進行加密。您的 Amazon S3 資料目標和寫入 Amazon S3 暫時目錄的任何資料都會加密。系統會以任務參數的形式傳遞此選項。如需詳細資訊,請參閱 Amazon 簡單儲存服務使用者指南中的使用伺服器端加密搭配 Amazon SSE S3 受管加密金鑰 (-S3) 保護資料

重要

如果指定安全組態,則會忽略此選項。

使用 Glue 資料目錄做為 Hive 中繼存放區

選取以使用 AWS Glue 資料目錄做為 Hive 中繼存放區。用於工作的IAM角色必須具有glue:CreateDatabase權限。稱為「預設」的資料庫隨即在 Data Catalog 中建立 (如當時該資料庫尚未存在)。

連線

選擇一個VPC組態以存取位於虛擬私有雲中的 Amazon S3 資料來源 (VPC)。您可以在中建立和管理網路連線 AWS Glue。如需詳細資訊,請參閱連線至資料

Libraries (程式庫)
Python 庫路徑,從屬JARs路徑和引用的文件路徑

如果您的指令碼需要這些選項,請進行指定。定義此任務時,您可以為這些選項定義以逗號分隔的 Amazon S3 路徑。執行任務時,您可以覆寫這些路徑。如需詳細資訊,請參閱提供您的自訂指令碼

任務參數

一組金鑰/值對,會以具名參數的形式傳遞至指令碼。這些是指令碼執行時使用的預設值,但您可以在觸發時或在執行任務階段覆寫。您必須在索引鍵名稱前加上 --;例如:--myKey。使用時,您可以將工作參數作為地圖傳遞 AWS Command Line Interface。

如需範例,請參閱 在 AWS Glue 中傳遞和存取 Python 參數 的 Python 參數。

標籤

使用 Tag key (標籤金鑰) 和選用的 Tag value (標籤值),標記您的任務。標籤鍵在建立後,將是唯讀狀態。應用標籤至某些資源,有助於您對其進行整理和識別。如需詳細資訊,請參閱AWS 中的標籤 AWS Glue

存取 Lake Formation 受管資料表任務的限制

建立讀取或寫入由所管理之資料表的工作時,請記住下列注意事項和限制 AWS Lake Formation:

警告 您的瀏覽器已停用或無法使用 Javascript。

您必須啟用 Javascript,才能使用 AWS 文件。請參閱您的瀏覽器說明頁以取得說明。