Managed Service for Apache Spark 現在包含先前的「Dataproc on Compute Engine」(叢集部署) 和「Google Cloud Serverless for Apache Spark」(無伺服器部署) 產品選項。
這兩項服務都提供代管、高度可擴充、適用於正式環境且安全的 Spark 環境,並與 OSS 相容,完全支援資料格式,但兩者的底層基礎架構管理和資源計費方式,均有根本上的差異。請參閱下列功能和用途,協助您選擇 Spark 解決方案。
如要進一步瞭解 Managed Service for Apache Spark 叢集部署作業,請參閱「Managed Service for Apache Spark 叢集部署作業總覽」。
比較 Managed Service for Apache Spark 部署作業
下表列出 Managed Service for Apache Spark 叢集和無伺服器部署作業的主要差異。
| 部署 | 無伺服器 | 叢集 |
|---|---|---|
| 處理架構 | 批次工作負載和互動式工作階段:Spark | Spark。其他開放原始碼架構,例如 Hive、Flink、Trino 和 Kafka |
| 無伺服器 | 是 | 否 |
| 啟動時間 | 50s | 120 秒 |
| 基礎架構控制 | 否 | 是 |
| 資源管理 | 無伺服器 | YARN |
| GPU 支援 | 是 | 是 |
| 互動工作階段 | 是 | 否 |
| 自訂容器 | 是 | 否 |
| 存取 VM (SSH) | 否 | 是 |
| Java 版本 | Java 17、21 | Java 17 和舊版 |
決定最合適的 Managed Service for Apache Spark 部署方式
本節將說明 Managed Service for Apache Spark 的核心優勢和主要用途,協助您為 Spark 工作負載選擇最合適的 Managed Service for Apache Spark 部署作業 (叢集或無伺服器)。
總覽
Managed Service for Apache Spark 部署作業的差異在於控制程度、基礎架構管理和計費模式。
- 無伺服器部署:Managed Service for Apache Spark 提供 Spark 即服務,在全代管 Google Cloud基礎架構上執行 Spark。您需要支付工作執行時間的費用。
- 叢集部署:提供 Spark 叢集即服務,在 Compute Engine 基礎架構上執行代管 Spark。您必須為叢集運作時間付費。
由於這些差異,每個 Managed Service for Apache Spark 部署作業最適合下列用途:
| 部署 | 用途 |
|---|---|
| 無伺服器 | 不同的專屬工作環境 排程批次工作負載 優先管理程式碼,而非基礎架構 |
| 叢集 | 長時間運作的共用環境 需要精細控管基礎架構的工作負載 遷移舊版 Hadoop 和 Spark 環境 |
主要差異
| 功能 | 無伺服器部署 | 叢集部署作業 |
|---|---|---|
| 管理模型 | 全代管的無伺服器執行環境。 | 以叢集為基礎。您負責佈建及管理叢集。 |
| 享有掌控權且可自訂 | 基礎架構控管程度較低,著重於提交程式碼及指定 Spark 參數。 | 可更精確地控管叢集設定、機器類型和軟體。可使用 Spot VM,並重複使用預留項目和 Compute Engine 資源容量。適合依賴特定 VM 規格 (例如 CPU 架構) 的工作負載。 |
| 用途 | 臨時查詢、互動式分析、新的 Spark 管道,以及資源需求難以預測的工作負載。 | 長時間運作的共用叢集、遷移現有的 Hadoop 和 Spark 工作負載 (含自訂設定)、需要深度自訂的工作負載。 |
| 管理作業負擔 | 降低管理負擔。 Google Cloud 會管理基礎架構、調度資源和佈建作業,讓您能專注於NoOps模型。Gemini Cloud Assist 可簡化疑難排解程序,無伺服器自動調整功能則有助於提供最佳效能。 |
管理負擔較重,需要叢集管理、資源調度和維護。 |
| 效率模式 | 沒有閒置運算資源的負擔:只有在工作執行時才會分配運算資源。啟動和關閉 VM 時不會產生費用。支援共用互動式工作階段,提升效率。 | 透過共用叢集,在工作和團隊之間提高效率,並採用共用多租戶模型。 |
| 位置資訊控制 | Managed Service for Apache Spark 支援區域工作負載,不需額外付費,即可提高可靠性和可用性。 | 叢集是可用區資源。建立叢集時,系統會自動選取可用區。 |
| 費用 | 系統只會根據 Spark 工作執行期間使用的資源,收取執行時間的費用,不含啟動和終止時間。以使用的資料運算單元 (DCU) 和其他基礎架構費用計費。 | 系統會根據節點數量,針對叢集執行時間 (包括啟動和終止) 計費。包括 Managed Service for Apache Spark 授權費用和基礎架構費用。 |
| 承諾使用折扣 (CUD) | 以 BigQuery 支出為準的 CUD 適用於 Managed Service for Apache Spark 工作。 | Compute Engine CUD 適用於所有資源用量。 |
| 映像檔和執行階段控制項 | 使用者可以將次要的 Managed Service for Apache Spark 執行階段版本設為固定版本,次要以下的版本則由 Managed Service for Apache Spark 管理。 | 使用者可以將 Managed Service for Apache Spark 映像檔版本固定為次要和子次要版本。 |
| 資源管理 | 無伺服器 | YARN |
| GPU 支援 | 是 | 是 |
| 互動式工作階段 | 是 | 否 |
| 自訂容器 | 是 | 否 |
| VM 存取權 (SSH) | 否 | 是 |
| Java 版本 | Java 17、21 |
支援的舊版本 |
| 啟動時間 | 50s | 120 秒 |
選擇無伺服器部署的時機
Managed Service for Apache Spark 無伺服器部署作業可簡化複雜的叢集管理作業,讓您專注於 Spark 程式碼。因此非常適合用於下列資料處理情境:
- 臨時和互動式分析:對於使用 Spark 執行互動式查詢和探索性分析的資料科學家和分析師來說,無伺服器模型提供快速入門方式,不必專注於基礎架構。
- 以 Spark 為基礎的應用程式和管道:在 Spark 上建構新的資料管道或應用程式時,Managed Service for Apache Spark 可免除叢集管理作業的負擔,大幅加快開發速度。
- 需求不穩定或難以預測的工作負載:對於間歇性 Spark 工作或資源需求量不穩定的工作,無伺服器 自動調度資源和依用量計費 (工作資源用量會產生費用) 可大幅降低成本。
- 著重提升開發人員生產力:Managed Service for Apache Spark 可免除叢集佈建和管理作業,加快建立商業邏輯、提供深入分析的速度,並提高生產力。
- 簡化作業並降低負擔:Managed Service for Apache Spark 基礎架構管理服務可減輕作業負擔並降低成本。
選擇叢集部署的時機
您可以使用 Managed Service for Apache Spark 叢集部署作業,執行 Apache Spark 和其他開放原始碼資料處理架構。可提供高度控制權和彈性,因此在下列情況下是首選:
- 遷移現有的 Hadoop 和 Spark 工作負載:支援將地端部署 Hadoop 或 Spark 叢集遷移至 Google Cloud。以最少的程式碼變更複製現有設定,特別是使用舊版 Spark 時。
- 深度自訂和控制:可自訂叢集機型、磁碟大小和網路設定。對於複雜且耗時的工作,這種控制層級對於調整效能和最佳化資源用量至關重要。
- 長期執行和持續性叢集:支援長期執行的 Spark 工作,以及多個團隊和專案的持續性叢集。
- 多元的開放原始碼生態系統:提供統一的環境,可使用 Hadoop 生態系統工具 (例如 Hive、Pig 或 Presto) 執行資料處理管道,以及 Spark 工作負載。
- 安全法規遵循:可控管基礎架構,以符合特定安全或法規遵循標準,例如保護個人識別資訊 (PII) 或受保護的健康資訊 (PHI)。
- 基礎架構彈性:提供 Spot VM,並可重複使用預留項目和 Compute Engine 資源容量,以平衡資源使用量,並促進雲端基礎架構策略。
總結
您要使用 Managed Service for Apache Spark 叢集還是無伺服器部署作業,取決於工作負載需求、作業偏好和偏好的控管程度。
- 選擇 Managed Service for Apache Spark 無伺服器,即可輕鬆使用、有效節省間歇性工作負載的成本,並免除基礎架構管理負擔,加快新 Spark 應用程式的開發速度。
- 如要盡可能控管叢集環境、遷移 Hadoop 或 Spark 工作負載,或需要永久的自訂共用叢集環境,請選擇 Apache Spark 叢集的代管服務。
評估本節列出的因素後,請選取最有效率且具成本效益的 Managed Service for Apache Spark 部署作業,執行 Spark 來充分發揮資料的潛力。