深度圖解spark的cacheManager和DiskManager原理

      網(wǎng)友投稿 905 2025-04-04

      本文和之前發(fā)表的2篇文章有關(guān)聯(lián),建議先閱讀前兩篇文章


      spark的內(nèi)存管理機(jī)制學(xué)習(xí)——BlockManager

      spark到底是怎么確認(rèn)內(nèi)存夠不夠用的?超大超詳細(xì)圖解!讓你掌握Spark memeoryStore內(nèi)存管理的精髓

      spark中存在一個(gè)cacheManager,它的作用是什么? 緩存原理又是如何的?

      以及和內(nèi)存memoryStore對(duì)應(yīng)的diskManager,它又是如何和內(nèi)存管理做交互,實(shí)現(xiàn)spark很重要的落盤機(jī)制的?本文將給你進(jìn)行一一講解

      RDD緩存管理cacheManager

      當(dāng)需要計(jì)算RDD時(shí),需要避免重復(fù)計(jì)算的RDD。

      什么時(shí)候RDD可能會(huì)被重復(fù)計(jì)算?一般是寬依賴RDD, 即RDD的下游可能有多個(gè), 但是另一個(gè)下游的拉去可能較慢, 那么此時(shí)需要做緩存。

      cacheManager只是對(duì)RDD的管理, 真正的緩存以及獲取是通過(guò)blockManager,然后根據(jù)內(nèi)存情況選擇存內(nèi)存還是存磁盤。

      RDD不是一定會(huì)做緩存,這取決于存儲(chǔ)級(jí)別的設(shè)定。

      RDD沒(méi)緩存時(shí), 不一定要重新計(jì)算, 也可能從CheckPoint中拿

      checkPoint概念:

      checkpoint在spark中主要有兩塊應(yīng)用:一塊是在spark core中對(duì)RDD做checkpoint,可以切斷做checkpoint RDD的依賴關(guān)系,將RDD數(shù)據(jù)保存到可靠存儲(chǔ)(如HDFS)以便數(shù)據(jù)恢復(fù);另外一塊是應(yīng)用在spark streaming中,使用checkpoint用來(lái)保存DStreamGraph以及相關(guān)配置信息,以便在Driver崩潰重啟的時(shí)候能夠接著之前進(jìn)度繼續(xù)進(jìn)行處理(如之前waiting batch的job會(huì)在重啟后繼續(xù)處理)。

      如果需要存入內(nèi)存,直接使用memoryStore即可,memoryStore的存儲(chǔ)過(guò)程見(jiàn)上一篇博文。

      深度圖解spark的cacheManager和DiskManager原理

      如果要寫入磁盤,需要調(diào)用diskStore提供的put方法把RDD對(duì)應(yīng)的block塊寫入磁盤

      diskStore和diskBlockManager有什么關(guān)系?

      diskStore里要寫入數(shù)據(jù)時(shí),負(fù)責(zé)打開某個(gè)文件, 然后往文件里寫入。

      取出數(shù)據(jù)時(shí),也是找到對(duì)應(yīng)的文件,然后取出數(shù)據(jù)。

      而這個(gè)磁盤文件的管理并沒(méi)有放到diskStore里實(shí)現(xiàn),而是獨(dú)立了一個(gè)diskBlockManager模塊。

      以DiskStore的putArray方法為例,從下圖可看出關(guān)系:

      即文件相關(guān)、序列化相關(guān),都讓diskBlockManager來(lái)搞了。

      diskBlockManager的getFile過(guò)程

      上圖里有個(gè)getFile的操作,即從DBM中拿到文件對(duì)象做寫入。

      那么這個(gè)文件創(chuàng)建時(shí),怎么選路徑,怎么命名?

      首先,文件的路徑和文件名, 使用2次哈希得到

      使用2級(jí)哈希做路徑的目的,是因?yàn)橐患?jí)目錄有多個(gè),需要用哈希選擇放到哪個(gè)一級(jí)目錄。

      每次創(chuàng)建文件的話,會(huì)把該文件放到DBM里的一個(gè)數(shù)組中,并加上鉤子做管理,如果程序中止或者結(jié)束,需要主動(dòng)清理臨時(shí)文件。

      DiskBlockManager全圖:

      EI企業(yè)智能 Java 可信智能計(jì)算服務(wù) TICS 大數(shù)據(jù) 智能數(shù)據(jù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel2003畫表的教程
      下一篇:WPS文本里面的內(nèi)容怎么設(shè)置顏色
      相關(guān)文章
      yy6080亚洲一级理论| 亚洲黄网站wwwwww| 亚洲婷婷国产精品电影人久久| 久久久久久亚洲av成人无码国产| 亚洲国产精品成人AV在线| 亚洲国产高清在线| 亚洲午夜av影院| www.亚洲一区| 亚洲国产成人久久精品99| tom影院亚洲国产一区二区| 国产亚洲精品影视在线产品 | 亚洲国产品综合人成综合网站| 国产成人亚洲精品影院| 亚洲欧洲无卡二区视頻| 亚洲黄网站wwwwww| 亚洲电影国产一区| 亚洲第一页在线观看| 久久夜色精品国产亚洲AV动态图| 亚洲AV无码精品色午夜果冻不卡| 亚洲人成电影在线播放| 久久久久亚洲精品男人的天堂| 中文字幕精品无码亚洲字| 在线精品亚洲一区二区三区| 亚洲精品制服丝袜四区| 亚洲人午夜射精精品日韩| 亚洲色自偷自拍另类小说| 亚洲精品一级无码中文字幕| 亚洲熟妇无码AV| 最新国产成人亚洲精品影院| 亚洲国产精品无码第一区二区三区| 国产亚洲欧美在线观看| 涩涩色中文综合亚洲| 亚洲免费视频观看| 亚洲丶国产丶欧美一区二区三区| 亚洲爆乳AAA无码专区| 亚洲日韩一区二区三区| 亚洲AV无码一区二区三区在线观看 | 亚洲精品国产高清不卡在线| 在线观看亚洲精品国产| 亚洲av综合av一区| 亚洲成a人片在线观看中文app|