映射化簡應用的緩存管理方法和裝置的制造方法
【專利說明】映射化簡應用的緩存管理方法和裝置
[0001]本發明涉及分布式文件系統,更具體地,涉及基于分布式文件系統的MapRe化ce應用的緩存管理方法和裝置。
【背景技術】
[0002] 分布式文件系統值istributedFileSystem)是指文件系統管理的物理存儲資 源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。分布式文件系統的 設計基于客戶機/服務器模式。一個典型的網絡可能包括多個供多用戶訪問的服務器。 MapRe化ce是Google公司提出的一種用于大規模并行編程的軟件架構。由于MapRe化ce 架構可W實現大規模數據集(大于口B)的并行運算,并通過把對數據集的大規模操作分發 給網絡上的多個節點進行并行運算來實現伸縮性,因此被分布式文件系統廣泛應用。概念 "Map(映射)"和"Re化ce(化簡)"及其主要思想,都是從函數式編程語言借來的。當前的 MapRe化ce中間件實現要求應用開發者指定一個Map(映射)函數,用來把一組鍵值對映射 成一些新的鍵值對化ey-valuepair),稱作中間鍵值對;此外還要求應用開發者指定一個 Re化ce(化簡)函數,用來對Map函數輸出的中間鍵值對進行進一步處理。
[0003] 分布式文件系統需要將劃分的文件塊存儲在多個計算節點上,并且需要將每個文 件塊復制為多個副本保存在不同的計算節點上,對于需要反復迭代的計算,MapRe化ce執行 每一次迭代的計算結果都需要寫入分布式文件系統的存儲介質,再從存儲介質中讀取出來 作為下一次迭代的輸入數據,由此對多個計算節點的文件塊進行讀寫操作時就不可避免地 產生了文件傳輸的網絡開銷W及計算延時。
[0004]現有的基于MapRe化ce架構的分布式文件系統,例如M3R系統和Spark系統修改 現有的MapRe化ce機制,使處理作業所有的Map任務線程和Re化ce任務線程共享一個進程 的內存空間,在化doop的基礎上實現了將數據一次性讀入內存中,后續的處理直接在內存 中操作,避免頻繁訪問分布式文件系統的存儲介質,使用內容操作代替存儲介質訪問,然而 一旦作業的某個Map任務或Re化ce任務失敗需要重新計算,該作業其余所有的Map任務和 Re化ce任務都需要重新計算,耗費大量的計算資源。再例如化chyon和Redis系統提供了內 存緩存管理(CacheMemoirManagement),MapReduce作業中Mapper處理的結果可W緩存 在化chyon和Redis管理的內存緩存中,后續的迭代計算可W直接從內存緩存中讀取計算 所需的數據。然而,在化chyon系統和Redis系統中,按照預先設定的緩存分片大小把分布 式文件系統的存儲介質中讀到內存緩存中,W及按照預先設定的緩存分片大小將每次迭代 的中間計算結果寫入到內存緩存,預先設定的緩存分片大小不同,讀取的性能有比較大的 差異,在設定的緩存分片大小比較大的情況,數據讀取的速度有可能比從存儲介質中讀取 還慢,同時分配給Mapper的內存緩存就會變少,使得同時能運行的Mapper數目受到限制, 影響性能;而在設定的緩存分片大小比較小的情況,需要讀取數據的次數增多,由于需要多 次的在分布式文件系統中打開/關閉文件,從而產生了較大的處理延時,而且隨著剩余內 存緩存大小的增加,在同時運行的Mapper數目給定的情況下,會造成部分內存緩存處于閑 置狀態,造成了浪費。
[0005] 因此,需要一種基于分布式文件系統的MapRe化ce應用的緩存大小的配置方法, 能夠高效地緩存需要迭代計算的MapRe化ce作業的數據,提高內存緩存的利用率,減小處 理延時。
【發明內容】
[0006] 根據本發明的一個方面,提供了一種基于分布式文件系統的MapRe化ce應用的緩 存管理方法,包括;接收需要迭代計算的MapRe化ce作業的Map任務處理請求;獲取處理 所述Map任務的參數,所述Map任務的參數包括待處理的數據大小、每條數據記錄的大小 和同時工作的Mapper的數目;獲取所述Map任務的緩存分片大小,其中所述Map任務的緩 存分片大小是根據所述Map任務的參數和Map緩存分片大小的訓練模型計算得到的;將待 處理的數據按照所述緩存分片大小從所述分布式文件系統的存儲介質讀到緩存中用于Map 任務處理;將所述Map任務處理的中間結果數據按照所述緩存分片大小寫入所述緩存中用 于后續的迭代計算。
[0007] 根據本發明的另一個方面,提供了一種基于分布式文件系統的MapRe化ce應用的 緩存管理裝置,包括:接收模塊,被配置為接收需要迭代計算的MapRe化ce作業的Map任務 處理請求;第一獲取模塊,被配置為獲取所述Map任務的參數,所述Map任務的參數包括待 處理的數據大小、每條數據記錄的大小和同時工作的Mapper的數目;第二獲取模塊,被配 置為獲取所述Map任務的緩存分片大小,其中所述Map任務的緩存分片大小是根據所述Map 任務的參數和Map緩存分片大小訓練模型計算得到的;第一讀取模塊,被配置為將待處理 的數據按照所述緩存分片大小從分布式文件系統的存儲介質讀到緩存中用于Map任務處 理;第一寫入模塊,被配置為將Map任務處理的中間結果數據按照所述緩存分片大小寫入 所述緩存中用于后續的迭代計算。
[0008] 根據本發明實施例的基于分布式文件系統的MapRe化ce應用的緩存管理方法和 裝置,能夠高效地緩存需要迭代計算的MapRe化ce作業的數據,提高內存緩存的利用率,減 小處理延時。
【附圖說明】
[0009] 通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述W及其 它目的、特征和優勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號 通常代表相同部件。
[0010] 圖1示出了適于用來實現本發明實施方式的示例性計算機系統/服務器12的框 圖。
[0011] 圖2示出根據本發明實施例的基于分布式文件系統的MapRe化ce應用的緩存管理 方法。
[0012] 圖3示出MapRe化ce架構的數據傳輸的示意圖
[0013] 圖4示出根據本發明的實施例的基于分布式文件系統的MapRe化ce應用的緩存管 理裝置400。
【具體實施方式】
[0014] 下面將參照附圖更詳細地描述本公開的優選實施方式。雖然附圖中顯示了本公開 的優選實施方式,然而應該理解,可WW各種形式實現本公開而不應被送里闡述的實施方 式所限制。相反,提供送些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的 范圍完整地傳達給本領域的技術人員。
[0015] 圖1示出了適于用來實現本發明實施方式的示例性計算機系統/服務器12的框 圖。圖1顯示的計算機系統/服務器12僅僅是一個示例,不應對本發明實施例的功能和使 用范圍帶來任何限制。
[0016] 如圖1所示,計算機系統/服務器12W通用計算設備的形式表現。計算機系統 /服務器12的組件可W包括但不限于;一個或者多個處理器或者處理單元16,系統存儲器 28,連接不同系統組件(包括系統存儲器28和處理單元16)的總線18。
[0017] 總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器, 外圍總線,圖形加速端口,處理器或使用多種總線結構中的任意總線結構的局域總線。舉例 來說,送些體系結構包括但不限于工業標準體系結構(ISA)總線,微通道體系結構(MAC) 總線,增強型ISA總線、視頻電子標準協會(VESA)局域總線W及外圍組件互連(PCI)總線。
[0018] 計算機系統/服務器12典型地包括多種計算機系統可讀介質。送些介質可W是 任何能夠被計算機系統/服務器12訪問的可用介質,包括易失性和非易失性介質,可移動 的和不可移動的介質。
[0019] 系統存儲器28可W包括易失性存儲器形式的計算機系統可讀介質,例如隨機存 取存儲器(RAM) 30和/或高速緩存存儲器32。計算機系統/服務器12可W進一步包括其 它可移動/不可移動的、易失性/非易失性計算機系統存儲介質。僅作為舉例,存儲系統34 可W用于讀寫不可移動的、非易失性磁介質(圖1未顯示,通常稱為"硬盤驅動器")。盡管 圖1中未示出,可W提供用于對可移動非易失性磁盤(例如"軟盤")讀寫的磁盤驅動器, W及對可移動非易失性光盤(例如CD-ROM,DVD-ROM或者其它光介質)讀寫的光盤驅動器。 在送些情況下,每個驅動器可W通過一個或者多個數據介質接口與總線18相連。存儲器28 可W包括至少一個程序產品,該程序產品具有一組(例如至少一個)程序模塊,送些程序模 塊被配置W執行本發明各實施例的功能。
[0020] 具有一組(至少一個)程序模塊42的程序/實用工具40,可W存儲在例如存儲器 28中,送樣的程序模塊42包括一但不限于一操作系統、一個或者多個應用程序、其它 程序模塊W及程序數據,送些示例中的每一個或某種組合中可能包括網絡環境的實現。程 序模塊42通常執行本發明所描述的實施例中的功能和/或方法。
[0021] 計算機系統/服務器12也可W與一個或多個外部設備14(例如鍵盤、指向設備、 顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統/服務器12交互的 設備通信,和/或與使得該計算機系統/服務器12能與一個或多個其它計算設備進行通信 的任何設備(例如網卡,調制解調器等等)通信。送種通信可W通過輸入/輸出(I/O)接 口 22進行。并且,計算機系統/服務器12還可W通過網絡適配器20與一個或者多個網絡 (例如局域網(LAN),廣域網(WAN)和/或公共網絡,例如因特網)通信。如圖所示,網絡適 配器20通過總線18與計算機系統/