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

Managed Service for Apache Spark 現在包含先前的「Managed Service for Apache Spark on Compute Engine」(叢集部署) 和「Managed Service for Apache Spark」(無伺服器部署) 產品選項。

無伺服器和叢集部署項目都提供代管、高度可擴充、可用於正式環境且安全的 Spark 環境,並與 OSS 相容,完全支援資料格式,但兩者的底層基礎架構管理和資源計費方式,均有根本上的差異。請查看下列功能和用途,選擇適合的 Spark 解決方案。

比較 Managed Service for Apache Spark 部署作業

下表列出 Managed Service for Apache Spark 叢集和無伺服器部署作業的主要差異。

部署作業 無伺服器 叢集
處理架構 批次工作負載和互動式工作階段:Spark Spark。其他開放原始碼框架,例如 Hive、Flink、Trino 和 Kafka
無伺服器 是 否
啟動時間 50 秒 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 基礎架構上執行 Managed 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 依支出計算的承諾使用折扣適用於 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 支援舊版本
啟動時間 50 秒 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 工作,以及多個團隊和專案的永久叢集。
  • 多元的開放原始碼生態系統:提供整合式環境,可執行資料處理管道,並搭配 Spark 工作負載執行 Hadoop 生態系統工具,例如 Hive、Pig 或 Presto。
  • 安全法規遵循:可控管基礎架構,符合特定安全或法規遵循標準,例如保護個人識別資訊 (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,充分發揮資料潛力。