智能RDD管理--用于在Spark中實現高性能內存計算


Intelligent RDD Management for High Performance In-Memory Computing in Spark

最近在研究一些Spark成本優(yōu)化的東西,看了一些論文稍微總結一下思路,方便思維拓寬和希望與大家交流!

本篇博文參考自:

WWW '17 Companion Proceedings of the 26th International Conference on World Wide Web Companion:
《Intelligent RDD Management for High Performance In-Memory Computing in Spark》


1 文章概述及問題描述

Spark是當下科研界或工業(yè)界中普遍使用的內存計算框架,可以通過將訪問的數據包裝成為彈性分布數據集(RDD),并將這些數據集存儲在快速訪問的主內存中,以大大加快計算速度。

但是,畢竟我們的計算內存是有限的,而Spark本身不會提供RDD的合理存儲機制,除此之外,如果中間的RDD因為一些原因缺失,則會導致該RDD的所在全部計算鏈條重新計算,這將帶來額外的計算和時間成本。

雖然spark內部提供的粗粒度(coarse-grained)checkpoint接口可以讓我們對想要保存的RDD數據進行持久化,但是對于日常的應用業(yè)務,其邏輯和代碼鏈條較為復雜,而人們都是靠經驗去checkpoint一些RDD,很多時候,我們犧牲了磁盤來保證程序的容錯性,這種方式都會導致spark執(zhí)行效率的降低,磁盤IO以及我們分布式存儲系統(tǒng)通常也有一定負擔。

此外,spark中還存在一個內存回收的問題,如果內存不夠用了,spark內部的LRU[2]算法(least recently used)來清楚一些使用頻率最小的RDD,但是該算法只考慮了使用頻率,并沒有考慮該數據分區(qū)的關于成本問題的一些因素,例如其計算成本問題,加入后面需要用到它,到底是計算他的成本小還是一直存儲到下一次使用的成本小。

因此,本文就是為了解決RDD的合理存儲問題,提出** 一個細粒度(Fine-Grained)的RDD-checkpoint和kick-out選擇策略,通過該策略,Spark可以智能地選擇合理的RDD進行存儲,以最大限度地提高內存的使用率 **。

LRU參考:
[2] D. Lee, J. Choi, J. H. Kim, S. H. Noh, S. L. Min,Y. Cho, and C. S. Kim. LRFU: A spectrum of policies that subsumes the least recently used and least frequently used policies. IEEE Transactions on Computers, 50(12):1352-1361, 2001.


2 論文牽扯到的Spark基礎

1). RDD
Spark是用于大數據處理的常用內存計算引擎。 Spark中的關鍵組件是彈性分布式數據集(RDD),它是一種分布式內存抽象,利用RDD進行編程,我們可以以容錯方式在大型集群上提交并執(zhí)行內存中的計算。 RDD利用內存來緩存中間結果,與其他大型數據密集型框架相比,Spark具有巨大的優(yōu)勢,例如。Hadoop的[1]。


** 2). CheckPoint **
checkpoint的目的是用來將某RDD的數據以及元數據信息進行緩存,內存和磁盤均是其緩存的介質對象。一旦RDD被checkpoint,其前面全部的父節(jié)點會被祛除,僅保留checkpointRDD作為其父RDD,這樣的機制可以減少RDD的鏈條長度,便于RDD的恢復。同時可以方便用戶跨多個計算進行RDD數據的訪問。** 但是這樣的粗粒度checkpoint會帶來一個嚴重問題,被切掉的依賴鏈條中的RDD可能在將來會被用到,因此此時spark必須要知道這些RDD的計算信息,以用于恢復**


3 方法概述

本文提出了一個智能的RDD管理方案,以幫助解決長鏈條RDD問題,同時對性能影響較小,并且該方案可以解決內存空間首先的問題。
首先提出了細粒度檢查技術,以避免丟棄高頻被使用的的RDD。 這種細粒度的Chekcpoint方法不會立即拋棄該RDD的全部父依賴,而是會去全局判斷是否要丟棄。
然后,討論如何巧妙地checkpoint一些RDD以消除計算開銷。
為了解決有限的存儲空間問題,提出了一種新穎的kick-out選擇方案來對包含寬依賴性的RDDs進行高速緩存。
文中的實驗驗證部分是基于Spark-1.5.2,并且使用大量數據工作負載,實驗表明該方案比baseline實現了高達28.01%的性能提升。


4 細粒度checkpoint

Lineage可以用于恢復RDD,但是對于長鏈條的RDD,這種恢復是十分耗時的,因此考慮checkpoint的方法來消除這種開銷。

一般來講,checkpoint對于使用頻率高的或是長鏈條的RDD,基于這樣的理論,本文提出如下建模公式來有選擇的對RDD進行checkpoint:


其中L和C分別表示選擇重新計算或是checkpoint達到恢復該RDD的所需時間,w代表故障頻率,取值范圍為[0,1],如果上式成立,則會進行checkpoint。


5 Kick-Out 選擇策略

LRU策略只考慮了時間維度,但是對于復雜長鏈條的計算,內存空間的利用率應當是又要考慮的,因為長鏈條帶來的最大的問題就是計算開銷,尤其是許多的寬依賴意味著這些RDD將來會有較大概率被訪問,所以持久化這些RDD可以在一定程度上提高內存的使用率。

5.1 選擇策略介紹

主要思想是給具有寬依賴的RDD分配優(yōu)先級P,優(yōu)先級決定了使用存儲空間的優(yōu)先級。分配策略如下:

優(yōu)先級劃分

其中L和C就是上面討論的直接計算和通過checkpoint來計算的時間花費,D代表該RDD的依賴程度(這里文中沒有解釋太多,我認為依賴程度就是該RDD所依賴的RDD的個數吧),權重就是將其除以最大的值進行進行歸一化相加得到,思想還是比較好理解的。

實驗驗證選取了Stanford和berkStan的graph dataset。實驗結果表明最大性能提升28.01%,平均提升13.63%。實驗結果如下圖:

result.png

6 實驗環(huán)境

1、4臺節(jié)點-64GB-13TB
2、Hadoop-2.6.0,Spark-1.5.2
3、數據集:
1)web-Stanford
2)web-BerkStan

至此,整個模型的思路介紹完畢。

我的博客 : https://NingSM.github.io

轉載請注明原址,謝謝。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,480評論 2 379

推薦閱讀更多精彩內容