本文說明 Managed Service for Apache Spark 的重要概念、基本建構區塊、核心功能和優點。瞭解這些基本概念,有助於有效使用 Managed Service for Apache Spark 執行資料處理工作。
無伺服器模式
Managed Service for Apache Spark 無伺服器是新穎的 Managed Service for Apache Spark 服務模式,可自動完成執行作業,不必佈建、管理或調度底層基礎架構的資源,就能執行各項工作,同時處理所有細節。
- 批次:批次 (全稱為批次工作負載) 是 Managed Service for Apache Spark 工作在無伺服器環境下的對等形式。使用者將程式碼 (例如 Spark 工作) 提交給服務系統後,Managed Service for Apache Spark 便會依實際需求佈建必要資源、執行工作,並於完成後釋放資源。使用者無需自行建立或管理叢集或工作資源,而是交由服務系統代勞。
- 互動式工作階段:互動式工作階段提供即時、隨選的環境,用於進行探索性資料分析,通常在 Jupyter Notebook 內運作。互動式工作階段是一種暫時性的無伺服器工作區,方便執行查詢及開發程式碼,而不必佈建並管理叢集和筆記本資源。
- 工作階段範本:工作階段範本是可重複使用的設定功能,用於定義互動式工作階段。範本包含工作階段的各項設定值,例如 Spark 屬性和程式庫依附元件。人們通常會在 Jupyter Notebook 中使用範本,建立互動式工作階段的環境來進行開發任務。
叢集基礎型模式
叢集上的 Managed Service for Apache Spark 是使用 Managed Service for Apache Spark 的標準方式,以基礎架構為中心。您可透過這種方式,完全掌控專屬的虛擬機器,執行資料處理工作。
- 叢集:叢集是使用者個人的資料處理引擎,由 Google Cloud 虛擬機器組成。建立叢集後,即可執行 Apache Spark 和 Apache Hadoop 等開放原始碼架構,而叢集大小、機型和設定等條件,皆可由使用者完全掌控。
- 工作:工作是指 PySpark 指令碼或 Hadoop 查詢之類的特定任務。使用者不需直接在叢集上執行工作,而是將工作提交給 Managed Service for Apache Spark,由它代為管理工作的執行作業;此外,同一個叢集可以接收多份工作。
- 工作流程範本:工作流程範本是可重複使用的定義功能,用於調度管理一系列工作 (亦即工作流程)。例如,範本可以定義工作之間的相依關係,規定在資料清理工作順利完成後,才能執行機器學習工作。無論是在既有叢集,或是在為執行工作流程而建立的臨時 (暫時性) 叢集,都可以執行範本化的工作流程,並於完成後刪除。如有需要,隨時皆可使用範本執行既定的工作流程。
- 自動調度資源政策:自動調度資源政策包含使用者所定義的規則,可根據叢集工作負載靈活應變,在叢集中動態新增或移除 worker 機器,實現最佳叢集成本效益和效能。
環境自訂功能
叢集上的 Managed Service for Apache Spark 提供叢集功能和元件,可用於自訂應用程式環境。
筆記本和開發環境
Managed Service for Apache Spark 無伺服器筆記本和 IDE 會連結至整合式開發環境,讓您在其中編寫及執行程式碼。
- BigQuery Studio 和 Workbench:這些是統合式的數據分析和筆記本環境,可在其中編寫程式碼 (例如在 Jupyter Notebook),並使用 Managed Service for Apache Spark 叢集或無伺服器工作階段做為強大的後端引擎,在大型資料集上執行程式碼。
- Managed Service for Apache Spark JupyterLab 外掛程式:這是官方
JupyterLabextension,可用作筆記本環境中的 Managed Service for Apache Spark 無伺服器控制台。使用者不必離開 Jupyter 介面,就能瀏覽、建立、管理叢集並提交工作,大幅簡化工作流程。 - Managed Service for Apache Spark Connect Python 連接器:這個 Python 程式庫可簡化在 Managed Service for Apache Spark 中使用 Spark Connect 的程序,且能處理驗證和端點設定作業,讓您更輕鬆將本機 Python 環境 (例如筆記本或 IDE) 連線至遠端 Managed Service for Apache Spark 叢集,進行互動式開發。
容器模型
Google Kubernetes Engine 上的 Managed Service for Apache Spark 會在 GKE 叢集上部署 Managed Service for Apache Spark 虛擬叢集。與 Managed Service for Apache Spark 叢集不同,Managed Service for Apache Spark 虛擬叢集不會佈建個別的主機和工作站 VM,而是在 GKE 叢集內佈建節點集區。Managed Service for Apache Spark on GKE 工作會以 Pod 形式在這些節點集區上執行。節點集區和節點集區上 Pod 的排程,都由 Managed Service for Apache Spark on GKE 管理。