1 3RDD的設計與執行原理

2021-08-28 03:21:28 字數 1148 閱讀 9413

rdd讀入外部資料來源(或者記憶體中的集合)進行建立;

rdd經過一系列的「轉換」操作,每一次都會產生不同的rdd,供給下乙個「轉換」使用;

最後乙個rdd經「行動」操作進行處理,並輸出到外部資料來源(或者變成scala集合或標量)。

例1:乙個spark的「hello world」程式

這裡以乙個「hello world」入門級spark程式來解釋rdd執行過程,這個程式的功能是讀取乙個hdfs檔案,計算出包含字串「hello world」的行數。

第1行**從hdfs檔案中讀取資料建立乙個rdd;第2、3行定義乙個過濾函式;第4行**對filerdd進行轉換操作得到乙個新的rdd,即filterrdd;第5行**表示對filterrdd進行持久化,把它儲存在記憶體或磁碟中(這裡採用cache介面把資料集儲存在記憶體中),方便後續重複使用,當資料被反覆訪問時(比如查詢一些熱點資料,或者執行迭代演算法),這是非常有用的,而且通過cache()可以快取非常大的資料集,支援跨越幾十甚至上百個節點;第5行**中的count()是乙個行動操作,用於計算乙個rdd集合中包含的元素個數。這個程式的執行過程如下:這個程式的執行過程如下:

*  建立這個spark程式的執行上下文,即建立sparkcontext物件;

*  從外部資料來源(即hdfs檔案)中讀取資料建立filerdd物件;

*  構建起filerdd和filterrdd之間的依賴關係,形成dag圖,這時候並沒有發生真正的計算,只是記錄轉換的軌跡;

*  執行到第6行**時,count()是乙個行動型別的操作,觸發真正的計算,開始實際執行從filerdd到filterrdd的轉換操作,並把結果持久化到記憶體中,最後計算出filterrdd中包含的元素個數。

1 3RDD的設計與執行原理

rdd讀入外部資料來源 或者記憶體中的集合 進行建立 rdd經過一系列的 轉換 操作,每一次都會產生不同的rdd,供給下乙個 轉換 使用 最後乙個rdd經 行動 操作進行處理,並輸出到外部資料來源 或者變成scala集合或標量 例1 乙個spark的 hello world 程式 這裡以乙個 hel...

一 RDD的設計與執行原理

1 mapreduce 將中間結果寫入到hdfs中 目前mapreduce框架都是把中間結果寫入到hdfs中,帶來了大量的資料複製 磁碟io和序列化開銷。2 rdd 資料操作管道化 rdd將具體的應用邏輯表達為一系列轉換處理,不同rdd之間的轉換操作形成依賴關係,可以實現資料管道化,避免中間儲存的結...

三 Spark設計與執行原理,基本操作

1.spark已打造出結構一體化 功能多樣化的大資料生態系統,請用 闡述spark生態系統的組成及各元件的功能。1 spark core spark核心元件,它實現了spark的基本功能,包含任務排程 記憶體管理 錯誤恢復 與儲存系統互動等模組。spark core中還包含了對彈性分布式資料集 re...