2023學年完整公開課版RDD緩存持久化_第1頁
2023學年完整公開課版RDD緩存持久化_第2頁
2023學年完整公開課版RDD緩存持久化_第3頁
2023學年完整公開課版RDD緩存持久化_第4頁
2023學年完整公開課版RDD緩存持久化_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

RDD緩存、持久化目錄CONTENTS2RDD緩存/持久化案例1介紹RDD的緩存/持久化介紹RDD的緩存/持久化PART0101RDD的緩存/持久化RDD緩存是spark中的重要特性。默認情況下,RDD的內(nèi)容是臨時的,每個RDD只能使用一次,如果某個RDD需要重復使用則需要從最開始的父RDD重新計算,計算量較大且耗時,使用緩存或持久化后,第一次計算出RDD內(nèi)容之后,可以將每個RDD的結(jié)果緩存在集群的內(nèi)存或磁盤中,后續(xù)調(diào)用以來該RDD的動作時可直接從緩存分區(qū)中返回,實現(xiàn)動作的重用,從而提高spark的速度。RDD緩存

RDD緩存機制實質(zhì)上是一種特殊的持久化。緩存機制當中將RDD的相關(guān)內(nèi)容緩存到內(nèi)存或磁盤當中,當RDD損壞時可以通過血統(tǒng)機制重新計算從而恢復數(shù)據(jù)。但在持久化當中,checkpoint將RDD緩存至HDFS當中,而且放棄了RDD之間的依賴性,利用HDFS中文件有多個備份以及副本的機制保證了數(shù)據(jù)的容錯性,提升了數(shù)據(jù)的安全性。另一方面,緩存機制當中RDD的分區(qū)由blockmanager管理,blockmanager的生命周期隨著進程的結(jié)束而結(jié)束,緩存到內(nèi)存上的RDD也會被清空,而持久化中checkpoint將RDD緩存到HDFS當中,只能被手動刪除。RDD持久化RDD的緩存/持久化Spark速度非??斓脑蛑唬褪窃诓煌僮髦锌梢栽趦?nèi)存中持久化或緩存數(shù)據(jù)集。當持久化某個RDD之后,每一個節(jié)點都將把計算的分片結(jié)果保存在內(nèi)存中,并且對此RDD或衍生出的RDD進行的其他動作重用。這使得后續(xù)的動作變得更加迅速。默認情況下,每一個轉(zhuǎn)換過的RDD都會在它之上執(zhí)行一個動作時被重新計算。從某種意義上來說,對于沒有持久化的RDD,compute方法實現(xiàn)了依賴鏈的遞歸調(diào)用(compute->firstParent.iterator->compute)。緩存的意義RDD被緩存之后,Spark將會在集群中,保存相關(guān)元數(shù)據(jù),下次使用這個RDD時,它將能更快訪問,不需要計算。RDD相關(guān)的持久化和緩存,是Spark最重要的特征之一??梢哉f,緩存是Spark構(gòu)建迭代算法和快速交互式查詢的關(guān)鍵。如果一個RDD只被使用一次或者很少次,不需要持久化。如果持久化無用的RDD,會浪費內(nèi)存(或磁盤)空間,反而降低了整個系統(tǒng)的性能。如果RDD被重復使用或者計算其代價很高,才會考慮持久化。另外,shuffle后生成的RDD盡量持久化,因為shuffle代價太高了。RDD的緩存方式RDD通過persist方法和cache方法可以通過前面得計算結(jié)果緩存,但是并不是這兩個方法被調(diào)用時立即緩存,而是觸發(fā)后面的action時,該RDD將會被緩存在計算節(jié)點的內(nèi)存中,并供后面的計算使用。cache注意事項

2如果內(nèi)存足夠的大,那么所有的分區(qū)都能被緩存,如果內(nèi)存不足,那看情況,最差的情況就是一個分區(qū)的數(shù)據(jù)都沒有被緩存。

1cache是一個lazy的算子,必須有Action類型的算子觸發(fā)執(zhí)行。

3緩存可能丟失,或者存儲在內(nèi)存的數(shù)據(jù)由于內(nèi)存的不足而被刪除,RDD的緩存容錯機制保證了即使緩存丟失也能保證計算的正確執(zhí)行。

4persist(StroageLevel.MEMORY_AND_DISK)方法優(yōu)先使用內(nèi)存,內(nèi)存不足在使用磁盤。緩存和checkpoint的比較某一個RDD被checkpoint之后,他的父依賴關(guān)系被刪除,該RDD被轉(zhuǎn)換為CheckPointRDD,以后在對該RDD的所有操作,都是從hdfs中的checkpoint目錄來讀取數(shù)據(jù)。緩存之后,RDD的依賴關(guān)系還是存在的。單次觸發(fā)Kylin目前不支持從WebGUI上觸發(fā)流式構(gòu)建。單次觸發(fā)Kylin目前不支持從WebGUI上觸發(fā)流式構(gòu)建。緩存(持久化),是在觸發(fā)action之后把數(shù)據(jù)寫入到內(nèi)存或者磁盤的。checkpoint也是在觸發(fā)action之后,執(zhí)行任務(wù),單獨再啟動一個job,負責寫入數(shù)據(jù)到hdfs中(把RDD分區(qū)中的數(shù)據(jù),以二進制文本的方式寫入到hdfs中,有幾個分區(qū),就有幾個二進制文件)RDD緩存/持久化案例PART0202案例#讀取數(shù)據(jù)valdata=sc.textFile("hdfs://hdp-01:9000/teacher/*.log")#設(shè)置sparkContext的checkpoint目錄sc.setCheckpointDir("hdfs://hdp-01:9000/ck2020")#對數(shù)據(jù)進行一些復雜的算子操作valdata2=data.filter(_.contains("bigdata"))#對得到的結(jié)果數(shù)據(jù)設(shè)置檢查點data2.checkpoint#觸發(fā)執(zhí)行data2.count#此處會有兩次執(zhí)行,一次把數(shù)據(jù)寫入checkpoint目錄,一次執(zhí)行count計算結(jié)果還可以對

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論