spark中的rdd的持久化

rdd的全稱為Resilient Distributed Datasets(彈性分布式數(shù)據(jù)集)
rdd的操作有兩種transfrom和action。
transfrom并不引發(fā)真正的rdd計(jì)算,action才會(huì)引發(fā)真正的rdd計(jì)算敬扛。
rdd的持久化是便于rdd計(jì)算的重復(fù)使用晰洒。

在rdd參與第一次計(jì)算后,設(shè)置rdd的存儲(chǔ)級(jí)別可以保持rdd計(jì)算后的值在內(nèi)存中啥箭。(1)另外谍珊,只有未曾設(shè)置存儲(chǔ)級(jí)別的rdd才能設(shè)置存儲(chǔ)級(jí)別,設(shè)置了存儲(chǔ)級(jí)別的rdd不能修改其存儲(chǔ)級(jí)別急侥。(2)(1)的舉例如下:rdd1要經(jīng)過transform1得到rdd2,然后在一個(gè)循環(huán)L內(nèi)rdd2進(jìn)行transform2和action1砌滞。由于trasform操作是不會(huì)真正執(zhí)行的,所以rdd1執(zhí)行transform1需要在循環(huán)L第一次循環(huán)的時(shí)候觸發(fā)坏怪。如果設(shè)置了rdd1的存儲(chǔ)級(jí)別贝润,那么循環(huán)L的第二次循環(huán)起,只需要從rdd2開始計(jì)算就好了铝宵,而不用向第一次循環(huán)時(shí)從rdd1開始計(jì)算题暖。
rdd的持久化操作有cache()和presist()函數(shù)這兩種方式。


Spark最重要的一個(gè)功能捉超,就是在不同操作間胧卤,持久化(或緩存)一個(gè)數(shù)據(jù)集在內(nèi)存中。當(dāng)你持久化一個(gè)RDD拼岳,每一個(gè)結(jié)點(diǎn)都將把它的計(jì)算分塊結(jié)果保存在內(nèi)存中枝誊,并在對(duì)此數(shù)據(jù)集(或者衍生出的數(shù)據(jù)集)進(jìn)行的其它動(dòng)作中重用。這將使得后續(xù)的動(dòng)作(Actions)變得更加迅速(通诚е剑快10倍)叶撒。緩存是用Spark構(gòu)建迭代算法的關(guān)鍵。你可以用persist()或cache()方法來標(biāo)記一個(gè)要被持久化的RDD耐版,然后一旦首次被一個(gè)動(dòng)作(Action)觸發(fā)計(jì)算祠够,它將會(huì)被保留在計(jì)算結(jié)點(diǎn)的內(nèi)存中并重用。Cache有容錯(cuò)機(jī)制粪牲,如果RDD的任一分區(qū)丟失了古瓤,通過使用原先創(chuàng)建它的轉(zhuǎn)換操作,它將會(huì)被自動(dòng)重算(不需要全部重算腺阳,只計(jì)算丟失的部分)落君。當(dāng)需要?jiǎng)h除被持久化的RDD,可以用unpersistRDD()來完成該工作亭引。此外绎速,每一個(gè)RDD都可以用不同的保存級(jí)別進(jìn)行保存,從而允許你持久化數(shù)據(jù)集在硬盤焙蚓,或者在內(nèi)存作為序列化的Java對(duì)象(節(jié)省空間)纹冤,甚至于跨結(jié)點(diǎn)復(fù)制洒宝。這些等級(jí)選擇,是通過將一個(gè)org.apache.spark.storage.StorageLevel對(duì)象傳遞給persist()方法進(jìn)行確定萌京。cache()方法是使用默認(rèn)存儲(chǔ)級(jí)別的快捷方法待德,也就是StorageLevel.MEMORY_ONLY(將反序列化的對(duì)象存入內(nèi)存)。

StorageLevel有五個(gè)屬性枫夺,
分別是:useDisk_是否使用磁盤将宪,
useMemory_是否使用內(nèi)存,
useOffHeap_是否使用堆外內(nèi)存如:Tachyon橡庞,
deserialized_是否進(jìn)行反序列化较坛,
replication_備份數(shù)目。

存儲(chǔ)級(jí)別的選擇
Spark的不同存儲(chǔ)級(jí)別扒最,旨在滿足內(nèi)存使用和CPU效率權(quán)衡上的不同需求丑勤。我們建議通過以下的步驟來進(jìn)行選擇:
?如果你的RDDs可以很好的與默認(rèn)的存儲(chǔ)級(jí)別(MEMORY_ONLY)契合,就不需要做任何修改了吧趣。這已經(jīng)是CPU使用效率最高的選項(xiàng)法竞,它使得RDDs的操作盡可能的快。?如果不行强挫,試著使用MEMORY_ONLY_SER并且選擇一個(gè)快速序列化的庫使得對(duì)象在有比較高的空間使用率的情況下岔霸,依然可以較快被訪問。
?
盡可能不要存儲(chǔ)到硬盤上俯渤,除非計(jì)算數(shù)據(jù)集的函數(shù)呆细,計(jì)算量特別大,或者它們過濾
了大量的數(shù)據(jù)八匠。否則絮爷,重新計(jì)算一個(gè)分區(qū)的速度,和與從硬盤中讀取基本差不多快梨树。
總結(jié):調(diào)用persist()或cache()方法使用的是MEMORY_ONLY存儲(chǔ)級(jí)別坑夯,對(duì)于廣播變量,使用的是MEMORY_AND_DISK存儲(chǔ)級(jí)別抡四。如果想使用其他存儲(chǔ)級(jí)別柜蜈,可以調(diào)用persist(StroageLevel)。MEMORY_AND_DISK存儲(chǔ)級(jí)別時(shí)當(dāng)內(nèi)存足夠時(shí)直接保存到內(nèi)存隊(duì)列中床嫌,當(dāng)內(nèi)存不足時(shí)跨释,將釋放掉不屬于同一個(gè)RDD的block的內(nèi)存。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末厌处,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子岁疼,更是在濱河造成了極大的恐慌阔涉,老刑警劉巖缆娃,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異瑰排,居然都是意外死亡贯要,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門椭住,熙熙樓的掌柜王于貴愁眉苦臉地迎上來崇渗,“玉大人,你說我怎么就攤上這事京郑≌悖” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵些举,是天一觀的道長跟狱。 經(jīng)常有香客問我,道長户魏,這世上最難降的妖魔是什么驶臊? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮叼丑,結(jié)果婚禮上关翎,老公的妹妹穿的比我還像新娘。我一直安慰自己鸠信,他們只是感情好笤休,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著症副,像睡著了一般店雅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贞铣,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天闹啦,我揣著相機(jī)與錄音,去河邊找鬼辕坝。 笑死窍奋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酱畅。 我是一名探鬼主播琳袄,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼纺酸!你這毒婦竟也來了窖逗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤餐蔬,失蹤者是張志新(化名)和其女友劉穎碎紊,沒想到半個(gè)月后佑附,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仗考,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年音同,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秃嗜。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡权均,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锅锨,到底是詐尸還是另有隱情叽赊,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布橡类,位于F島的核電站蛇尚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏顾画。R本人自食惡果不足惜取劫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望研侣。 院中可真熱鬧谱邪,春花似錦、人聲如沸庶诡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽末誓。三九已至扯俱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喇澡,已是汗流浹背迅栅。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晴玖,地道東北人读存。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像呕屎,于是被迫代替她去往敵國和親让簿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容