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,充分發揮資料潛力。