Spark 數據分析導論-筆記
Spark Core程序員
- Spark Core 實現了Spark 的基本功能,包含任務調度、內存管理、錯誤恢復、與存儲系統交互等模塊。
- Spark Core 中還包含了
- 對彈性分佈式數據集(resilient distributed dataset,簡稱RDD)的API 定義。
- RDD 表示分佈在多個計算節點上能夠並行操做的元素集合,
- 是Spark 主要的編程抽象。
- Spark Core 提供了建立和操做這些集合的多個API。
Spark SQL算法
- Spark SQL 是Spark 用來操做結構化數據的程序包。
- 使用SQL或者Apache Hive 版本的SQL 方言(HQL)來查詢數據。
- Spark SQL 支持多種數據源,好比Hive 表、Parquet 以及JSON 等。
- 除了爲Spark 提供了一個SQL 接口,
- Spark SQL 還支持開發者將SQL 和傳統的RDD 編程的數據操做方式相結合,
- 不管是使用Python、Java 仍是Scala,
- 開發者均可以在單個的應用中同時使用SQL 和複雜的數據分析。
- 經過與Spark所提供的豐富的計算環境進行如此緊密的結合,
- Spark SQL 得以從其餘開源數據倉庫工具中脫穎而出。
- Spark SQL 是在Spark 1.0 中被引入的。
Spark Streaming編程
- Spark Streaming 是Spark 提供的對實時數據進行流式計算的組件。
- 好比生產環境中的網頁服務器日誌,
- 或是網絡服務中用戶提交的狀態更新組成的消息隊列,都是數據流。
- SparkStreaming 提供了用來操做數據流的API,
- 而且與Spark Core 中的RDD API 高度對應。
- 這樣一來,程序員編寫應用時的學習門檻就得以下降,
- 不管是操做內存或硬盤中的數據,
- 仍是操做實時數據流,
- 程序員都更能應對自如。
- 從底層設計來看,Spark Streaming 支持與Spark Core 同級別的容錯性、吞吐量以及可伸縮性。
MLlib服務器
- Spark 中還包含一個提供常見的機器學習(ML)功能的程序庫,叫做MLlib。
- MLlib 提供了不少種機器學習算法,
- 包括分類、迴歸、聚類、協同過濾等,
- 還提供了模型評估、數據導入等額外的支持功能。
- MLlib 還提供了一些更底層的機器學習原語,
- 全部這些方法都被設計爲能夠在集羣上輕鬆伸縮的架構。
GraphX網絡
- GraphX 是用來操做圖(好比社交網絡的朋友關係圖)的程序庫,
- 與Spark Streaming 和Spark SQL 相似,
- GraphX 也擴展了Spark 的RDD API,
- 能用來建立一個頂點和邊都包含任意屬性的有向圖。
- GraphX 還支持針對圖的各類操做
- (好比進行圖分割的subgraph 和操做全部頂點的mapVertices),
- 以及一些經常使用圖算法(好比PageRank和三角計數)。
集羣管理器架構
- 就底層而言,Spark 設計爲能夠高效地在一個計算節點到數千個計算節點之間伸縮計算。
- 爲了實現這樣的要求,同時得到最大靈活性,
- Spark 支持在各類集羣管理器(clustermanager)上運行,
- 包括Hadoop YARN、Apache Mesos,以及Spark 自帶的一個簡易調度器,叫做獨立調度器。
- 若是要在沒有預裝任何集羣管理器的機器上安裝Spark,
- 而若是已經有了一個裝有Hadoop YARN 或Mesos的集羣,
- 經過Spark 對這些集羣管理器的支持,
- 你的應用也一樣能運行在這些集羣上。
歡迎關注本站公眾號,獲取更多信息