Spark學習(一)基礎介紹
阿新 • • 發佈:2019-02-08
發展
spark是什麼
2、一個大一統的軟體棧
Spark核心
計算引擎
對由很多計算任務組成的、執行在多個工作機器或者是一個計算叢集上的應用排程、分發以及監控的計算引擎
速度快、通用
Spark專案包含多個密切組成的元件
優點1:軟體棧中所有的程式庫和高階元件都可以從下層的改進中獲益
優點2:執行整個軟體棧的代價變小了
優點3:能夠構建出無縫整合不同處理模型的應用
Spark的各個元件
Spark Core 實現了Spark的基本功能 包含:任務排程、記憶體管理、錯誤恢復、與儲存系統互動等模組 包含:對彈性分散式資料集RDD的API定義 RDD表示 分佈在多個計算機節點上可以並行操作的元素集合 是Spark的主要程式設計物件 SparkCore提供了建立和操作這些集合的多個API SparkSQL 用來操作結構化資料的程式包 通過它我們可以使用 SQL or Apache Hive版本的SQL方言(HQL)查詢資料 支援多種資料來源 比如:Hive表、Parquet、JSON等 為Spark提供了一個SQL介面 實在Spark1.0中被引用的 Spark Streaming Spark提供的對實時資料進行流式計算的元件 提供了用來操作資料流的API 與SparkCore中的RDD API高度對應 底層設計來看:它支援與Spark Core同級別的容錯性、吞吐量以及可伸縮性 MLlib 機器學習ML功能的程式庫 提供了很多種機器學習演算法 分類 迴歸 聚類 協同過濾等 GraphX 用來操作圖的程式庫 可以進行並行的圖計算 擴充套件了Spark的RDD API 用來建立一個頂點和邊都包含任意屬性的有向圖 叢集管理器 支援在各種叢集管理器(cluster manager)上執行 包括:Hadoop YARN、Apache Mesos、以及Spark自帶的獨立調器