spark 提供了乙個全面、統一的框架用於管理各種有著不同性質(文字資料、圖表資料等)的資料集和資料來源(批量資料或實時的流資料)的大資料處理的需求。
包含spark 的基本功能;尤其是定義rdd 的api、操作以及這兩者上的動作。其他spark 的庫都是構建在rdd 和spark core 之上的。
提供通過apache hive 的sql 變體hive 查詢語言(hiveql)與spark 進行互動的api。每個資料庫表被當做乙個rdd,spark sql 查詢被轉換為spark 操作。
對實時資料流進行處理和控制。spark streaming 允許程式能夠像普通rdd 一樣處理實時資料。
乙個常用機器學習演算法庫,演算法被實現為對rdd 的spark 操作。這個庫包含可擴充套件的學習演算法,比如分類、回歸等需要對大量資料集進行迭代的操作。
控制圖、並行圖操作和計算的一組演算法和工具的集合。graphx 擴充套件了rdd api,包含控制圖、建立子圖、訪問路徑上所有頂點的操作。
在standalone 模式中即為master 主節點,控制整個集群,監控worker。在yarn 模式中為資源管理器。
從節點,負責控制計算節點,啟動executor 或者driver。
spark 應用程式從編寫到提交、執行、輸出的整個過程如圖所示,圖中描述的步驟如下:
使用sparkcontext 提交的使用者應用程式,首先會使用blockmanager 和broadcastmanager將任務的hadoop 配置進行廣播。然後由dagscheduler 將任務轉換為rdd 並組織成dag,dag 還將被劃分為不同的stage。最後由taskscheduler 借助actorsystem 將任務提交給集群管理器(cluster manager)。
集群管理器(clustermanager)給任務分配資源,即將具體任務分配到worker 上,worker建立executor 來處理任務的執行。standalone、yarn、mesos、ec2 等都可以作為spark的集群管理器。
rdd 可以看做是對各種資料計算模型的統一抽象,spark 的計算過程主要是rdd 的迭代計算過程。rdd 的迭代計算過程非常類似於管道。分割槽數量取決於partition 數量的設定,每個分割槽的資料只會在乙個task 中計算。所有分割槽可以在多個機器節點的executor 上並行執行。
sparkcontext向資源管理器(可以是standalone,mesos,yarn)申請執行executor資源,並啟動standaloneexecutorbackend。
executor向sparkcontext申請task。
sparkcontext將應用程式分發給executor。
sparkcontext構建dag圖,將dag圖分解成stage、將taskset傳送給task scheduler,最後由task scheduler將task 傳送給executor執行。
task在executor上執行,執行完後釋放所有資源。
建立rdd 物件。
dagscheduler 模組介入運算,計算rdd 之間的依賴關係,rdd 之間的依賴關係就形成了dag。
每乙個job 被分為多個stage。劃分stage 的乙個主要依據是當前計算因子的輸入是否是確定的,如果是則將其分在同乙個stage,避免多個stage 之間的訊息傳遞開銷。
從hadoop 檔案系統(或與hadoop相容的其他持久化儲存系統,如hive、cassandra、hbase)輸入(例如hdfs)建立。
從父rdd 轉換得到新rdd。
通過parallelize 或makerdd 將單機資料建立為分布式rdd。
對於rdd 可以有兩種操作運算元:轉換(transformation)與行動(action)。
轉換(transformation):transformation 操作是延遲計算的,也就是說從乙個rdd轉換生成另乙個rdd 的轉換操作不是馬上執行,需要等到有action 操作的時候才會真正觸發運算。
行動(action):action 運算元會觸發spark 提交作業(job),並將資料輸出spark 系統。
SPARK基礎概念
可以認為應用是多次批量計算組合起來的過程,在物理上可以表現為你寫的程式包 部署配置。應用的概念類似於計算機中的程式,它只是乙個藍本,尚沒有執行起來。spark學習筆記三 spark原理介紹 spark最重要的api,使用者邏輯與spark集群主要的互動介面,它會和cluster master互動,包...
Spark基礎概念梳理
因為最近在學習與使用spark,所以對一些基礎概念與術語做一些梳理。用來加深映像同時方便後續複習 spark是乙個基於記憶體的分布式計算框架,可無縫整合於現有的hadoop生態體系。主要包括四大元件 spark streaming spark sql spark mllib和spark graphx...
Spark基礎概念01 初識Spark架構和RDD
四 核心api 五 rdd是什麼,有哪些特點 六 rdd的特性 七 rdd常用的建立方式 八 rdd常用的運算元 轉換 動作 九 基於rdd的應用程式開發 十 shuffle機制 十一 累加器 可自定義 1 在驅動程式中,通過sparkcontext主導應用的執行 2 sparkcontext可以連...