批次處理 中階
Apache Spark 核心架構
請說明 Apache Spark 的核心架構與執行模型。
架構組成
Driver:Spark 應用程式的主進程,負責解析 DAG、任務調度,與 Cluster Manager 溝通。
Executor:在 Worker 節點上執行的進程,負責實際計算和資料儲存(記憶體/磁碟)。每個應用程式有自己的 Executor。
Cluster Manager:管理叢集資源(YARN、Kubernetes、Spark Standalone)。
核心抽象
RDD(Resilient Distributed Dataset):最底層的分散式資料抽象,不可變、可容錯、可重建。現在較少直接使用。
DataFrame/Dataset:在 RDD 之上的高階 API,帶有 Schema,支援 SQL 查詢,由 Catalyst Optimizer 自動優化執行計畫。
Lazy Evaluation
Transformation(map、filter、join)不立即執行,只記錄 DAG。Action(collect、count、write)才觸發實際執行,允許 Catalyst 整體優化。
Shuffle
GroupBy、Join 等操作需要資料重新分配(Shuffle),跨節點網路傳輸,是效能瓶頸的主要來源。減少 Shuffle 是 Spark 調優的核心。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
