🔑 名詞卡
Apache Spark
🎯 定義
一個支援記憶體內運算(In-memory Processing)的分散式計算平台,可支援批次、即時與互動式查詢(基於微批次 micro-batching),是目前大數據處理最廣泛使用的框架之一。
分散式運算框架比較
| 框架 | 處理模式 | 優點 | 缺點 |
|---|---|---|---|
| Hadoop(MapReduce) | 純批次處理 | 成熟穩定、容錯強、易水平擴充 | 速度較慢,不適合即時運算 |
| Spark | 記憶體內運算,微批次模擬即時 | 運算速度快、函式庫豐富(如 MLlib) | 記憶體需求高 |
| Flink | 原生即時串流處理 | 真正即時、高吞吐、狀態管理一致性佳 | 生態系統較 Spark 小 |
| Beam | 統一批次與串流的抽象模型 | 可移植性強,多雲彈性部署 | 抽象層高,上手需較多工程經驗 |
重點/應用
- 內建近似統計功能:
approxQuantile()(估算分位數)、summary()(快速生成描述性統計摘要),適合處理 TB 級資料且無需將全部資料載入記憶體。 - 在機器學習訓練中可用 Spark MLlib 執行分散式迴歸、分類;並可搭配 GraphX/GraphFrames 做分散式圖計算、Spark NLP 做大規模文字處理。
記憶技巧
「Hadoop 用磁碟、Spark 用記憶體」——這是兩者速度差異的根本原因。
📖 課文原文「Apache Spark:處理模式:記憶體內運算(In-memory Processing),支援批次、即時與互動式查詢(基於微批次 micro-batching)……優點:運算速度快、豐富函式庫、廣泛社群支援。」