本篇文章為大家展示了怎么解析spark的寬窄依賴(lài)和持久化,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)公司是一家以網(wǎng)站建設(shè)公司、網(wǎng)頁(yè)設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、seo優(yōu)化排名、小程序App開(kāi)發(fā)等移動(dòng)開(kāi)發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為成都木屋等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開(kāi)發(fā)服務(wù)。cache底層調(diào)用的是persisit ,默認(rèn)參數(shù)是StorageLevel.MEMORY_ONLY cache 用完最好手動(dòng)干掉
是否使用磁盤(pán) 是否使用內(nèi)存 不管 反序列化 副本
選擇默認(rèn)第一種MEMORY_ONLY 內(nèi)存不夠選怎序列化 磁盤(pán)最好別選擇 不要用這個(gè)副本形式耗內(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)先級(jí)從上到下 優(yōu)先選擇第一個(gè)MEMORY_ONLY ,內(nèi)存實(shí)在不夠就序列化 If your RDDs fit comfortably with the default storage level (MEMORY_ONLY), leave them that way 默認(rèn)可以搞定就用默認(rèn)的. 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 不要放到磁盤(pán) 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.
寬依賴(lài)用shufer 寬窄依賴(lài)容錯(cuò)程度不一樣 一個(gè)shuffer產(chǎn)生兩個(gè)stage,兩個(gè)產(chǎn)生三個(gè)stage等等 Lineage 血緣關(guān)系 用于容錯(cuò)很多都是記錄的 textfile =》 xx => yy 描述的是一個(gè)RDD如何從父RDD過(guò)來(lái)的 RDD作用一個(gè)函數(shù)就是對(duì)RDD里面的分區(qū)作用一個(gè)函數(shù) 丟失了根據(jù)父RDD重新算一下 dependence 寬依賴(lài):一個(gè)父RDD的partition至多被子RDD的某個(gè)partition使用一次 沒(méi)shuffer pipline 丟一個(gè)就直接拿出來(lái)計(jì)算就可以 窄依賴(lài):一個(gè)父RDD的parttiton會(huì)被子RDD的partitio使用多次 有shuffer 寬依賴(lài)掛掉了要從父RDD全部計(jì)算 有的時(shí)候解決數(shù)據(jù)傾斜需要shuffer 他們?nèi)蒎e(cuò)程度不一樣的 有shuffer就會(huì)生成stage 總結(jié):老子被兒子用幾次,多個(gè)孩子(寬)或單個(gè)孩子(窄)
driver 就是main方法 中創(chuàng)建sparkcontext action 產(chǎn)生job ,shuffer 產(chǎn)生stage ,stage 里是task
上述內(nèi)容就是怎么解析spark的寬窄依賴(lài)和持久化,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。