[發明專利]內存計算的緩存優化方法有效
| 申請號: | 201310531246.7 | 申請日: | 2013-11-01 |
| 公開(公告)號: | CN103631730A | 公開(公告)日: | 2014-03-12 |
| 發明(設計)人: | 陳康;艾智遠;馮琳;周佳祥 | 申請(專利權)人: | 深圳清華大學研究院 |
| 主分類號: | G06F12/12 | 分類號: | G06F12/12 |
| 代理公司: | 深圳市鼎言知識產權代理有限公司 44311 | 代理人: | 孔麗霞 |
| 地址: | 518057 廣東省深圳市南山區高*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 計算 緩存 優化 方法 | ||
技術領域
本發明涉及分布式大數據處理的領域,尤其涉及內存計算的緩存優化方法。
背景技術
Spark與Hadoop相似,是一個基于內存計算的開源集群計算系統,能夠并行處理大數據集的計算,可以實現大數據的交互式查詢以及優化迭代工作負載。Spark將數據集緩存在內存中,縮短了I/O訪問延遲。但是隨著數據量的激增以及人們對任務執行速度的要求越來越高,提高Spark的性能成為一個迫切的需求。通過對內存加速提高內存使用效率以提高運行速度,是提高Spark系統性能的一種方式。
目前,程序員需要在Spark中利用cache()方法將RDD顯示載入內存,此種方式要求程序員對內存使用有一定的基礎,而該方式使得內存利用率的高低很大程度依賴于程序員編寫的代碼質量的優劣,在有些情況下,僅通過優化代碼本身無法提高內存使用率。
發明內容
鑒于上述內容,有必要提供一種內存計算的緩存優化方法,能夠充分利用內存資源,提高內存使用率,降低程序員編程負擔。
所述的內存計算的緩存優化方法,該方法包括:在Spark的源程序代碼中插入監聽代碼,以樣本數據作為輸入預先執行應用程序,對應用程序進行動態語義分析,獲取所有RDD函數操作的輸入RDD?ID、操作類型、輸出RDD?ID,根據獲取的信息構造DAG;遍歷上述DAG,計算各頂點的出度,篩選出出度大于1的頂點對應的RDD并建立RDD集合S,該集合S中的RDD為需要緩存至內存中的RDD;調整上述RDD集合S中所有RDD的Action執行順序,以優化需要緩存至內存的RDD數據計算的訪問順序;計算所述RDD集合S中所有RDD的權重;當輸入真正的作業數據執行應用程序時,根據優化的RDD數據計算的訪問順序,依次將RDD緩存至內存,若內存已滿,根據內存替換算法決定從內存中被替換出的RDD;根據多級緩存算法確定被替換出的RDD是直接丟棄還是存儲至磁盤。
相比于現有技術,本發明所述內存計算的緩存優化方法能夠對Spark應用程序進行動態語義分析得出DAG圖,調整Action執行順序以優化RDD數據計算的訪問順序,計算RDD的權重,根據內存替換算法決定內存中被替換出的RDD以及根據多級緩存算法決定被替換出的RDD的處理方式。應用本發明所述內存計算的緩存優化方法,程序員無需在編程時顯示指定加載內存的RDD以及考量內存使用情況,降低程序員的編程負擔,同時提高了內存的利用率進而提升大數據處理的速度。
附圖說明
圖1是本發明所述內存計算的緩存優化方法的較佳實施例的方法流程圖。
圖2是本較佳實施例中進行動態語義分析的樣例PageRank算法的偽代碼。
圖3是本較佳實施例中對PageRank算法進行動態語義分析后,構造的DAG的示意圖。
圖4是本較佳實施例中用于說明調整Action執行順序可優化RDD訪問順序的Spark拉取模型樣例的偽代碼。
圖5是本較佳實施例中分析Spark拉取模型樣例代碼得出的RDD訪問順序的示意圖。
圖6是本較佳實施例中調整Spark拉取模型代碼的Action執行順序后的RDD訪問順序的示意圖。
圖7是本較佳實施例中根據貪心算法調整Action執行順序的偽代碼。
圖8是本較佳實施例中說明RDD權重影響的示意圖。
圖9是本較佳實施例中多級緩存算法的偽代碼。
圖10是不同操作類型對RDD的數據量大小影響的示意圖。
具體實施方式
本發明所述內存計算的緩存優化方法(以下簡稱“內存優化方法”)是對現有開源項目Spark的優化,應用該內存優化方法,可以提高內存的利用率,進一步提升并行處理大數據的運行速度。
Spark利用Scala語言實現,是一個允許集群上對數據集進行交互式分析的有效、通用的編程語言框架。Scala語言是一種基于JVM(Java?Virtual?Machine,Java虛擬機)的靜態類型、函數式、面向對象的語言。其中,RDD(Resilient?Distributed?Dataset,彈性分布式數據集)是Spark的一個重要的抽象概念,是分布在集群節點上的具有容錯機制且進行并行操作的只讀記錄分區集合,可以將所有數據加載至內存,允許在大型集群上執行基于內存的計算。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳清華大學研究院,未經深圳清華大學研究院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310531246.7/2.html,轉載請聲明來源鉆瓜專利網。





