溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么解析spark的寬窄依賴和持久化

發(fā)布時間:2021-12-17 14:05:24 來源:億速云 閱讀:175 作者:柒染 欄目:大數(shù)據(jù)

本篇文章為大家展示了怎么解析spark的寬窄依賴和持久化,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一.持久化官網(wǎng)

1.官網(wǎng)位置截圖

怎么解析spark的寬窄依賴和持久化

2.cache 源碼

cache底層調(diào)用的是persisit  ,默認參數(shù)是StorageLevel.MEMORY_ONLY
cache 用完最好手動干掉

怎么解析spark的寬窄依賴和持久化

3.StorageLevel源碼

怎么解析spark的寬窄依賴和持久化

4.StorageLevel 解釋

是否使用磁盤
是否使用內(nèi)存
不管
反序列化
副本

5.persisit 可以傳的參數(shù)

怎么解析spark的寬窄依賴和持久化

6.官網(wǎng):怎么選擇緩存?

怎么解析spark的寬窄依賴和持久化

7.上圖解釋

選擇默認第一種MEMORY_ONLY 
內(nèi)存不夠選怎序列化
磁盤最好別選擇
不要用這個副本形式耗內(nèi)存
緩存選擇:
Spark’s storage levels are meant to provide different trade-offs (權(quán)衡)between memory usage and CPU efficiency.We recommend going through the following process to select one: 選擇方式
    優(yōu)先級從上到下
    優(yōu)先選擇第一個MEMORY_ONLY ,內(nèi)存實在不夠就序列化
    If your RDDs fit comfortably with the default storage level (MEMORY_ONLY), leave them that way 默認可以搞定就用默認的. This is the most CPU-efficient option, allowing operations on the RDDs to run as fast as possible.
    不要選擇java的序列化
    If not, try using MEMORY_ONLY_SER and selecting a fast serialization library to make the objects much more space-efficient 空間很好, but still reasonably fast to access. (Java and Scala)
    Don’t spill to disk 不要放到磁盤 unless the functions that computed your datasets are expensive, or they filter a large amount of the data. Otherwise, recomputing a partition may be as fast as reading it from disk.

二.寬窄依賴,血緣關(guān)系

1.總結(jié)

寬依賴用shufer
寬窄依賴容錯程度不一樣
一個shuffer產(chǎn)生兩個stage,兩個產(chǎn)生三個stage等等
Lineage 血緣關(guān)系  用于容錯很多都是記錄的
textfile =》 xx => yy
描述的是一個RDD如何從父RDD過來的
RDD作用一個函數(shù)就是對RDD里面的分區(qū)作用一個函數(shù)
丟失了根據(jù)父RDD重新算一下
dependence
    寬依賴:一個父RDD的partition至多被子RDD的某個partition使用一次   沒shuffer
    pipline     丟一個就直接拿出來計算就可以
    窄依賴:一個父RDD的parttiton會被子RDD的partitio使用多次    有shuffer
    寬依賴掛掉了要從父RDD全部計算
    有的時候解決數(shù)據(jù)傾斜需要shuffer
    他們?nèi)蒎e程度不一樣的
    有shuffer就會生成stage
總結(jié):老子被兒子用幾次,多個孩子(寬)或單個孩子(窄)

2.driver

driver  就是main方法 中創(chuàng)建sparkcontext
action 產(chǎn)生job  ,shuffer 產(chǎn)生stage  ,stage 里是task

上述內(nèi)容就是怎么解析spark的寬窄依賴和持久化,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI