建立互動式工作階段和執行階段設定檔

本文說明如何建立 Managed Service for Apache Spark 互動式工作階段和執行階段設定檔,在 Google Cloud CLI 和 Dataproc API 中稱為工作階段範本。執行階段設定檔是一組可重複使用的無伺服器 Spark 執行階段設定 (例如運算級別和執行器設定),可用於建立互動式筆記本和工作階段。

建立互動式工作階段

您可以使用 Google Cloud CLI 或 Managed Service for Apache Spark API,建立 Managed Service for Apache Spark 互動式工作階段。

gcloud

您可以使用 gcloud beta dataproc sessions create spark SESSION_ID 指令,建立 Managed Service for Apache Spark 互動式工作階段:

gcloud beta dataproc sessions create spark SESSION_ID \
    --location=REGION \
    optional flags ...

替換或新增下列內容:

REST

您可以使用 Managed Service for Apache Spark sessions.create API 方法,建立 Managed Service for Apache Spark 互動式工作階段。設定下列要求欄位:

建立執行階段設定檔

Managed Service for Apache Spark 執行階段設定檔 (有時稱為工作階段範本) 定義了可重複使用的設定,用於建立 Managed Service for Apache Spark 互動式工作階段。您可以使用 Google Cloud 控制台、gcloud CLI 或 Managed Service for Apache Spark API 建立執行階段設定檔。在 gcloud CLI 和 Dataproc API 中,執行階段設定檔稱為 session templates。

控制台

如要使用Google Cloud 控制台建立 Managed Service for Apache Spark 執行階段設定檔,請完成下列步驟:

  1. 前往 Google Cloud 控制台的「Runtime Profiles」(執行階段設定檔) 頁面。

    前往「Runtime Profiles」(執行階段設定檔)

  2. 點選「建立」。

  3. 在「Create a runtime profile」(建立執行階段設定檔) 頁面中,進行下列主要設定:

    • 顯示名稱:必填。輸入執行階段設定檔的顯示名稱,或接受系統預先填入的名稱。顯示名稱必須至少包含一個字母或數字,並儲存為所有工作階段類型 (包括 Spark Connect) 的頂層顯示名稱。「Runtime profile name」(執行階段設定檔名稱) 是資源 ID,系統會自動從顯示名稱衍生,將字母轉換為小寫,並將無效字元轉換為連字號,如欄位下方的提示所示。如要自訂資源 ID (與顯示名稱不同),請展開「Additional configuration」(其他設定),然後編輯「Runtime configuration」(執行階段設定)。

    • Region:必填。為使用這個執行階段設定檔的工作階段,選取可用的 Compute Engine 區域。預設區域為 us-east4 (先前為 us-central1),清單會顯示區域說明。

    • 說明:選填。輸入說明,以利識別執行階段設定檔。

    • 「Tier」(級別):選取執行工作負載的 Managed Service for Apache Spark 級別:

      • Premium:預設。採用加速引擎,適合用於複雜或易受延遲影響的查詢,並支援高記憶體和 GPU 加速執行器。選取「Premium」時,系統會顯示並預設勾選「Enable Lightning Engine to accelerate performance」(啟用 Lightning Engine 來提高效能) 核取方塊,透過 Lightning Engine 加速 Spark 工作,並設定 spark.dataproc.engine=lightningEngine。

      • 標準:提供標準 Spark 執行環境,適合用於例行資料處理作業。互動式工作階段一律會以進階級執行,選取「Standard」(標準) 只會影響批次執行作業。如果選擇「Standard」(標準),Lightning Engine 會關閉,機器類型會限制為標準 CPU 類型 (standard-4、standard-8 或 standard-16),且需要 HDD (standard) 磁碟。如果從「Premium」切換至「Standard」,高記憶體或 GPU 資源配置會重設為 standard-4,SSD 磁碟則會重設為 200 GiB HDD。

    • 執行器設定:選取運算大小調整模式,以及執行工作負載的 Spark 執行器和驅動程式機器類型:

      • 一般:預設。提供僅限 CPU 的機器型態,適合一般擷取、轉換和載入 (ETL) 工作負載。在「Executor type」(執行器類型) 清單中,選取「High memory」(高記憶體) 類型,例如 highmem-4 (預設) 搭配 4 個 vCPU 和 32 GB 記憶體、highmem-8 搭配 8 個 vCPU 和 64 GB 記憶體,或 highmem-16 搭配 16 個 vCPU 和 128 GB 記憶體,或選取「Standard」(標準) 類型,例如 standard-4 搭配 4 個 vCPU 和 16 GB 記憶體、standard-8 搭配 8 個 vCPU 和 32 GB 記憶體,或 standard-16 搭配 16 個 vCPU 和 64 GB 記憶體。高記憶體機型僅適用於進階級。

      • 加速:提供附加 GPU 的機器類型,適合資料科學和 AI 或機器學習訓練和推論工作負載。選取「Accelerated」形狀後,系統會自動將級別切換為「Premium」,並將磁碟級別切換為「SSD (premium)」,預設大小為 375 GiB。在「Executor type」(執行器類型) 清單中,選取具有 4、8、12、16、24、48 或 96 個 vCPU 的 L4 類型,或選取 A100 類型,例如 A100 40GB (12 vCPU) 或 A100 80GB (12 vCPU)。

  4. 選用:如要自訂進階執行階段、運算、自動調度資源、metastore、網路、安全性、生命週期或屬性設定,請按一下「Additional configuration」(其他設定) 展開面板。在要自訂的類別旁,按一下「Edit」(編輯),在窗格中設定,然後按一下「Save」(儲存):

    • 執行階段設定:設定執行階段 ID、Spark 版本、容器映像檔、暫存 bucket 和 Python Package Repository:

      • 執行階段設定檔名稱:必填。接受依據顯示名稱產生的資源 ID,或輸入自訂 ID。ID 必須介於 4 到 63 個字元之間,只能使用小寫英文字母、數字和連字號,開頭和結尾須為小寫英文字母或數字,且在建立執行階段設定檔後即無法變更。

      • Spark 執行階段版本:必要。選取支援的 Managed Service for Apache Spark 執行階段版本。

      • 自訂 Spark 映像檔:選用。輸入自訂容器映像檔的 Artifact Registry 或 Container Registry URI,其中包含自訂 Java 或 Python 依附元件。

      • 暫存值區:選用。按一下「Browse」(瀏覽),選取或建立 Cloud Storage 暫存 bucket,用於儲存工作負載依附元件、工作驅動程式輸出內容和設定檔。如果留空,Managed Service for Apache Spark 會自動管理暫存 bucket (摘要中以 Auto 表示)。

      • Python Package Repository:選用。輸入自訂存放區的 URI (例如 https://pypi.org/simple),即可安裝 Python 套件。如果留空,套件會從 Google 代管的 PyPI 提取式快取安裝 (預設摘要)。

    • 執行器和驅動程式設定:自訂運算級別、磁碟級別、磁碟大小和獨立驅動程式設定:

      • 級別:選取「進階」(包含選用的「啟用 Lightning Engine 以提升效能」核取方塊) 或「標準」。

      • 執行器類型:選取一般 High memory 或 Standard 機器型態,或加速 L4 或 A100 機器型態。

      • 「Disk tier」(磁碟級別):選取 HDD (standard) 或 SSD (premium)。HDD (standard) 是 CPU 類型的預設值,也是標準級別的必要值。SSD (premium) 適用於進階級,適合處理會大量重組或溢寫的工作負載,且為加速 GPU 形態的必要項目。

      • 「Disk size」(磁碟大小):選取磁碟大小 (以 GiB 為單位)。HDD (standard) 支援 200 GiB 至 1500 GiB,以 100 GiB 為單位調整,預設值為 200 GiB。SSD (premium) 支援 375 GiB、750 GiB 或 1500 GiB,預設值為 375 GiB。

      • Use different configuration for driver:選用。根據預設,驅動程式會使用與執行器相同的機器型態和磁碟設定。勾選這個核取方塊,即可分別自訂驅動程式機器類型、驅動程式磁碟層級和驅動程式磁碟大小。

    • 自動調度資源:設定動態資源分配,依據工作負載需求調整執行器數量:

      • Enabled:預設選取,會設定 spark.dynamicAllocation.enabled。取消勾選這個核取方塊,即可停用自動調度資源功能。

      • 「Initial executors」(初始執行器):輸入初始執行器數量,這會設定 spark.dynamicAllocation.initialExecutors。預設為 5。有效值範圍:2.3 以下執行階段版本為 2 至 2000;3.0 以上執行階段版本為 0 至 2000。

      • 執行器數量下限:輸入執行器數量下限,這會設定 spark.dynamicAllocation.minExecutors。執行階段版本 2.3 以下的預設值為 2,執行階段版本 3.0 以上的預設值為 0,上限為 2000。

      • 「Maximum executors」(執行器數量上限):輸入執行器數量上限,這會設定 spark.dynamicAllocation.maxExecutors。預設值為 1000,上限為 2000。

    • Metastore 設定:選取管理資料集中繼資料的 metastore:

      • Lakehouse 執行階段目錄:預設。使用目前專案中的無伺服器 Lakehouse 執行階段目錄,預設會啟用 Iceberg REST 端點。您可以指定專案 ID,並選擇現有的目錄 ID 或定義新目錄。您也可以勾選「Hive Endpoint」(Hive 端點) 核取方塊,指定 Hive 端點的「Project ID」(專案 ID)、「Catalog ID」(目錄 ID) 和「Catalog Name」(目錄名稱)。

      • Dataproc Metastore:附加代管 Dataproc Metastore Hive Metastore (HMS) 執行個體。在「Selected project」(所選專案) 中選取專案,然後在「Metastore service」(Metastore 服務) 清單中選擇服務執行個體。

      • 「None」(無):針對使用這個執行階段設定檔的工作階段,停用 metastore 整合功能。

    • 網路和安全性:設定虛擬私有雲網路、執行憑證和加密金鑰:

      • 連結叢集:在「network configuration」(網路設定) 下方, Google Cloud 控制台會自動在所選區域中選取符合資格的網路或子網路。如果所選區域沒有可用的預設網路,「Additional configuration」(其他設定) 會自動開啟,並顯示預設網路無法使用的警告。在這種情況下,「Create」(建立) 按鈕會保持停用狀態,直到您點選「Configure network」(設定網路) 並選取可用的子網路為止。您可以選取「Networks in this project」(這項專案中的網路),選擇目前專案中的「Primary network」(主要網路) 和「Subnetwork」(子網路),也可以選取「Networks shared from host project」(從主專案共用的網路),選擇Shared VPC子網路。所選子網路必須啟用Private Google Access (PGA)。如需網路連線需求,請參閱「開放子網路連線」。您也可以視需要輸入網路標記,將防火牆規則和路由套用至工作負載 VM。

      • 使用執行筆記本:選擇使用者帳戶(預設值),以使用最終使用者憑證執行筆記本;或選擇服務帳戶,以使用自訂的服務帳戶執行會話。 如果選取「Service Account」(服務帳戶),則必須在「Service account」(服務帳戶) 欄位中指定服務帳戶。

      • 「Encryption」(加密):選取 預設的「Google-owned and Google-managed encryption key」,或選取「Cloud KMS key」(Cloud KMS 金鑰),使用 客戶自行管理的加密金鑰 (CMEK) 加密 工作負載資料。

    • 工作階段生命週期:設定自動終止工作階段的限制:

      • Max idle time:選填。輸入「Max idle time quantity」(閒置時間上限數量),然後在「Max idle time unit」(閒置時間上限單位) 中選取「seconds」、「minutes」、「hours」或「days」,範圍從 10 分鐘到 330 小時,指定筆記本工作階段可保持閒置的時間長度,超過這個時間就會自動終止。

      • 工作階段時間上限:選填。輸入「Max session time quantity」(工作階段時間上限數量),並選取「Max session time unit」(工作階段時間上限單位),可選 seconds、minutes、hours 或 days,範圍從 10 分鐘到 330 小時,以指定工作階段的持續時間上限。

    • 其他自訂設定:新增自訂 Spark 屬性和資源標籤:

      • Spark 屬性:選用。按一下「Add property」(新增屬性),然後輸入自訂 Spark 屬性的「Key」(鍵) 和「Value」(值) 組合。如果屬性是由表單中的專屬欄位控制 (例如運算層、執行器和驅動程式大小、Lightning Engine、spark.dynamicAllocation.* 和 Lakehouse 目錄屬性),則會由這些欄位管理,不會顯示在任意形式清單中。在 Google Cloud 控制台中,請勿加入 spark: 前置字元。

      • 標籤:選用。按一下「Add label」(新增標籤),然後輸入「Key」(鍵) 和「Value」(值) 組合,將標籤附加至執行階段設定檔。

  5. 在頁面右側,查看「摘要」資訊卡中的設定詳細資料,以及「預估價格」資訊卡中的預估資料運算單元 (DCU) 用量。如要進一步瞭解 DCU 費用,請參閱「Managed Service for Apache Spark 定價」。

  6. 點選「建立」。

gcloud

在 gcloud CLI 中,執行階段設定檔會以工作階段範本的形式管理。您無法在 gcloud CLI 中使用 create 指令,直接建立 Managed Service for Apache Spark 執行階段設定檔,但可以使用 gcloud beta dataproc session-templates import 指令,從 YAML 設定檔建立或更新執行階段設定檔。您也可以使用 gcloud beta dataproc session-templates export 指令匯出現有的執行階段設定檔。

REST

在 Managed Service for Apache Spark API 中,執行階段設定檔是以 SessionTemplate 資源表示。您可以使用 Managed Service for Apache Spark sessionTemplates.create API 方法,建立 Managed Service for Apache Spark 執行階段設定檔。設定下列要求欄位: