Apache Spark 是用於大規模資料處理的整合數據分析引擎,內建 SQL、串流、機器學習和圖形處理等多種模組。Spark 可以在 Apache Hadoop、Kubernetes 和雲端上執行,也可獨立運作,處理各種資料來源。這項服務提供豐富的 Java、Scala、Python 和 R API,可供廣大開發人員和數據資料學家使用。另外,它的 Python API (PySpark) 也能與 Pandas 等常見程式庫完美整合,方便您處理資料。在 Google Cloud 中,Apache Spark 提供無伺服器選項、Lightning Engine (預先發布版) 等突破性的效能強化功能,並與整合式資料和 AI 平台深度整合,讓使用者體驗更上一層樓。
常會有人問 Apache Spark 和 Apache Hadoop 的個別使用時機,其實兩者都是當今市場上最出眾的分散式系統,兩者的 Apache 頂層專案也相似,並且經常一起使用。Hadoop 主要用於具有 MapReduce 模式的大量磁碟作業,而 Spark 則是一種更靈活但成本通常較高的記憶體內處理架構。瞭解每種工具的特性,將有助於判斷最佳實作時機。
瞭解 Google Cloud 如何協助您以更簡單、整合且更具成本效益的方式,執行 Apache Spark 工作負載。您可以使用 Google Cloud Serverless for Apache Spark 進行開發,免去作業負擔,或是使用 Dataproc 建立代管 Spark 叢集。
Spark 生態系統包括五個主要元件:
在這些要素的加持下,Google Cloud 可提供最佳化環境。舉例來說,Lightning Engine 可提升 Spark 和 DataFrame 的效能,Google Cloud Serverless for Apache Spark 則可簡化部署和管理作業,而 Gemini 則可提升 BigQuery Studio 和 Vertex AI Workbench 等筆記本環境中的開發人員工作效率。
快速
相較於 Hadoop MapReduce,Spark 的記憶體內處理和 DAG 排程器可讓工作負載執行速度更快,尤其是疊代任務。Google Cloud 提供最佳化基礎架構和 Lightning Engine,可加快運算速度。
易用性
Spark 的高階運算子可簡化平行處理應用程式的建構作業。您可以透過 Scala、Python、R 和 SQL 以互動方式使用 Spark,加速開發作業。Google Cloud 提供無伺服器選項,並與 Gemini 整合筆記本,使用起來更簡單。
擴充性
Spark 可水平擴充,可將工作分散至叢集節點,以處理大量資料。Google Cloud 提供無伺服器自動調度資源功能和彈性的 Dataproc 叢集,可簡化擴充作業。
通用性
Spark 提供多個程式庫,包括 SQL 和 DataFrame、機器學習適用的 MLlib、GraphX 和 Spark Streaming。您可在同一應用程式中無縫組合這些程式庫。
在開放原始碼架構下,帶動技術創新
Spark 運用開放原始碼社群的力量,快速推動創新及解決問題,進而加快開發速度和產品上市時間。Google Cloud 秉持開放精神,提供標準 Apache Spark 並強化其功能。
Apache Spark 是一個快速的通用型叢集運算引擎,可部署在 Hadoop 叢集中或獨立模式下。透過 Spark,程式設計師可以使用 Java、Scala、Python、R 和 SQL 快速編寫應用程式,然後讓開發人員、數據資料學家和具有統計經驗的進階商務使用者都可以存取。使用 Spark SQL 時,使用者可以連接任何資料來源,並將其顯示為資料表供 SQL 用戶端使用。此外,在 Spark 中也可以輕鬆實作互動式機器學習演算法。
使用 Apache Impala、Apache Hive 或 Apache Drill 之類僅限 SQL 的引擎時,使用者只能使用 SQL 或類似 SQL 的語言查詢儲存在多個資料庫中的資料。所以架構比 Spark 要小一些。 不過,在 Google Cloud 中,您不必做出嚴格的選擇。BigQuery 提供強大的 SQL 功能,Google Cloud Serverless for Apache Spark 和 Dataproc 則提供 Spark 和 Hadoop 代管服務,讓您能透過 BigLake Metastore 和開放式格式,在同一份資料上使用 Spark 的多樣化功能。
很多公司都會使用 Spark 將需要密集運算的艱鉅任務化繁為簡,更有效率地處理及分析大量的結構化和非結構化即時/封存資料。此外,Spark 也讓使用者能完美整合相關的複雜功能,例如機器學習和圖形演算法。 常見的應用包括:
資料工程師可使用 Spark 編寫程式並建立資料處理工作,且有更多的程式語言選擇。在 Google Cloud 中,資料工程師可以使用 Google Cloud Serverless for Apache Spark 來執行 ETL/ELT pipeline,免去作業負擔,或是使用 Dataproc 來控管代管叢集,所有服務都整合了 BigQuery 和 Dataplex Universal Catalog 等治理工具。
數據資料學家可以使用 Spark 搭配 GPU,在數據分析和機器學習方面獲得更豐富的成果。能使用熟悉的語言更快處理大量資料,將有助於加速創新。 Google Cloud 為 Spark 提供強大的 GPU 支援,並與 Vertex AI 完美整合,讓數據資料學家能更快建構及部署模型。他們可以使用 BigQuery Studio、Vertex AI Workbench 等各種筆記本環境,或是連結 Jupyter 和 VS Code 等偏好的 IDE。這種彈性的開發體驗,再加上 Gemini 的支援,讓他們從最初的探索階段到實際部署,都能加快工作流程。