比較 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 可簡化疑難排解作業,無伺服器自動調校功能則有助於提供最佳效能。 管理開銷較高,需要叢集管理、資源調度和維護。
效率模式 沒有閒置運算資源的負擔:只有在工作執行時才會分配運算資源,沒有啟動和關閉費用。支援共用互動式工作階段,可提高效率。 透過共用叢集,在工作和團隊之間提高效率,並採用共用多租戶模型
位置資訊控制 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 工作負載,或需要永久的自訂共用叢集環境,請選擇 Managed Service for Apache Spark 叢集

評估本節列出的因素後,請選取最有效率且經濟實惠的 Managed Service for Apache Spark 部署作業,執行 Spark 來充分發揮資料的潛力。