原文地址:
在大資料的時代,資料的各種術語層出不窮,比如資料倉儲、資料湖,還有比較熱門的Hadoop、Spark,讓人眼花繚亂。在這裡,我們主要介紹的是Spark,從巨集觀的角度來介紹Spark到底是什麼。
我們將解決如下幾個簡單的問題:
- Spark是什麼
- Spark的組成
- Spark的使用者和用途
下面我們分別進行敘述。
Spark是什麼
首先,我們開始第1個簡單的問題,Spark是什麼?
Spark是什麼,Spark是1個用來實現快速而通用的叢集計算的平臺。
在速度方面,Spark擴充套件了廣泛使用的MapReduce計算模型,高效地支援更多計算模型,包括互動式查詢和流處理,並能夠在記憶體中進行計算。
總的來說,Spark適用於各種各樣原先需要在多種不同的分散式平臺下的場景,包括批處理、互動式查詢、流處理。並通過1個統一的框架支援這些不同的計算,大大減輕了原先需要對各種平臺分別管理的負擔。
另外,Spark還提供了豐富的介面(支援Python、Java、Scala)和程式庫外,還能與其他大資料工具密切配合使用,例如執行在Hadoop叢集上。
Spark的組成
Spark專案包含多個緊密整合的元件,其核心是1個可以對很多計算任務、多個工作機器或計算叢集上的應用進行排程、分發以及監控的計算引擎。
其各個元件主要包括:
- Spark Core,Spark的基本功能,包括任務排程、記憶體管理、錯誤恢復與儲存系統互動等模組,另外還有RDD(對彈性分散式資料集,resilient distributed dataset)的API定義
- Spark SQL,Spark操作結構化的程式包,用於資料的查詢
- Spark Streaming,提供對實時資料進行流式計算的元件
- MLib,提供常見機器學習功能的程式庫
- GraphX,進行並行圖計算的程式庫
- 叢集管理器,提供Hadoop YARN,Apache Mesos的支援
Spark的使用者和用途
Spark主要面向兩大目標人群:
- 資料科學家
- 工程師
可以用於以下兩方面:
- 資料科學,更多的主要是資料分析領域,例如統計、機器學習建模、資料轉換
- 資料處理,通過豐富的介面來快速實現常見的任務以及應用的監視、審查和效能調優
參考書籍:
《Learning Spark:Lightning-fast Data Analysis》P1-6