比較 Managed Service for Apache Spark 無伺服器和叢集部署作業

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 1721 支援的舊版本
啟動時間 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 來充分發揮資料的潛力。