MapReduce故障容錯研究與作業(yè)調度器優(yōu)化
發(fā)布時間:2019-09-04 13:56
【摘要】:隨著數(shù)據(jù)爆炸性地增長,如何高效的分析和存儲海量數(shù)據(jù)引起了人們的廣泛關注,傳統(tǒng)的網格計算、并行計算和分布式計算已經不能滿足現(xiàn)在海量數(shù)據(jù)處理的要求,MapReduce編程模型應運而生。MapReduce的出現(xiàn)讓海量數(shù)據(jù)的處理變得輕松和簡單。MapReduce被廣泛的應用于用戶行為分析,廣告效果分析、網絡爬蟲等海量數(shù)據(jù)處理。隨著MapReduce集群不斷擴大和MapReduce應用的增多,MapReduce一些不完善的地方也逐漸顯現(xiàn)。由于MapReduce采用master/slave架構,主節(jié)點JobTracker就會存在單點故障問題。當前絕大多數(shù)MapReduce作業(yè)調度器是按照CPU進行調度的,作業(yè)調度的時候沒有考慮到作業(yè)和機器的內存使用情況,因此,會造成大內存作業(yè)運行時占用較多的內存資源而導致TaskTracker的內存溢出甚至宕機。本文在分析MapReduce相關技術的基礎上進行以下兩個方面的研究工作: 1)本文針對JobTracker的單點故障問題,提出了雙節(jié)點熱備份的解決方案,設計并實現(xiàn)一個雙機熱備系統(tǒng)。在該系統(tǒng)中,通過雙機熱備來提高JobTracker的故障容錯能力,即引入了一個備份JobTracker去對主JobTracker進行熱備份。備份JobTracker通過實時收集、解析主JobTracker的作業(yè)狀態(tài)更新日志來恢復作業(yè)運行狀態(tài),從而到達主備狀態(tài)同步。當主JobTracker失效或者Hadoop集群需要重啟時,備份JobTracker將會迅速恢復所有的作業(yè)狀態(tài),并接管原來主JobTracker的所有服務而成為新的主JobTracker,從而保證了所有服務不間斷的運行。實驗表明該方案能夠有效的解決JobTracker的單點故障問題,提高MapReduce的故障容錯能力。備份JobTracker同步主JobTracker狀態(tài)帶來的額外代價較小,幾乎可以忽略;故障切換和恢復時間不到2s,有著良好的用戶體驗。 2)本文針對傳統(tǒng)作業(yè)調度器中沒有考慮到作業(yè)和TaskTracker內存使用情況,而導致TaskTracker內存溢出的問題,提出了基于內存控制的調度算法。該算法以公平調度器為基礎,根據(jù)Hadoop中與作業(yè)內存相關的配置信息,估算每個作業(yè)運行時所需的內存大小,對公平調度器的調度算法進行了優(yōu)化。此算法在作業(yè)調度的時候考慮了作業(yè)所需內存和集群中機器內存使用情況,該算法保留了公平調度器公平高效的優(yōu)點,同時使集群內存使用達到均衡,避免TaskTracker內存溢出甚至宕機情況。實驗表明該調度算法能夠有效的避免TaskTracker內存溢出和宕機的情況,,同時,在集群中有較多的大內存作業(yè)運行的時候能夠提高集群的效率。 本文的兩個方案均已應用于國內最大電子商務公司的生產集群上,該生產集群的節(jié)點數(shù)超過3000臺。
【圖文】:
7 圖 2.1 Hadoop 架構統(tǒng)的分級文件系統(tǒng),可以創(chuàng)er/slaves 模型,master 節(jié)點護程序,負責記錄文件是如文件的訪問。Datanode 是文件 這個后臺程序負責把 HDFS時候,先由 NameNode 告訴直接與這個 DataNode 服務器作。文件時,將數(shù)據(jù)文件分割成許,每個數(shù)據(jù)塊存儲在一個 D
圖 2.2 MapReduce 框架e 編程模型要應用于海量數(shù)據(jù)的并行運算。MapReduce 在功能數(shù),用戶定義一個 Map 函數(shù)來來讀取輸入文件中的的 Map 任務進行并行的處理,即把讀入的一個個y, value>對;另一部分是 Reduce 函數(shù),用戶再定義中國結果的有著相同 key 的 values 合并起來。架中作業(yè)的運行是基于<key, value>對,即數(shù)據(jù)的理之后生成的結果也是一個個<key, value>對,只是處型不一樣。一個 MapReduce 作業(yè)的執(zhí)行過程以及數(shù)> —> list<k2,v2>,list<v2>> —> <k3,v3>
【學位授予單位】:杭州電子科技大學
【學位級別】:碩士
【學位授予年份】:2013
【分類號】:TP302.8;TP306
本文編號:2531801
【圖文】:
7 圖 2.1 Hadoop 架構統(tǒng)的分級文件系統(tǒng),可以創(chuàng)er/slaves 模型,master 節(jié)點護程序,負責記錄文件是如文件的訪問。Datanode 是文件 這個后臺程序負責把 HDFS時候,先由 NameNode 告訴直接與這個 DataNode 服務器作。文件時,將數(shù)據(jù)文件分割成許,每個數(shù)據(jù)塊存儲在一個 D
圖 2.2 MapReduce 框架e 編程模型要應用于海量數(shù)據(jù)的并行運算。MapReduce 在功能數(shù),用戶定義一個 Map 函數(shù)來來讀取輸入文件中的的 Map 任務進行并行的處理,即把讀入的一個個y, value>對;另一部分是 Reduce 函數(shù),用戶再定義中國結果的有著相同 key 的 values 合并起來。架中作業(yè)的運行是基于<key, value>對,即數(shù)據(jù)的理之后生成的結果也是一個個<key, value>對,只是處型不一樣。一個 MapReduce 作業(yè)的執(zhí)行過程以及數(shù)> —> list<k2,v2>,list<v2>> —> <k3,v3>
【學位授予單位】:杭州電子科技大學
【學位級別】:碩士
【學位授予年份】:2013
【分類號】:TP302.8;TP306
【參考文獻】
相關期刊論文 前1條
1 劉曉潔;黃永佳;;基于Linux的雙機熱備系統(tǒng)的實現(xiàn)技術[J];計算機應用研究;2007年04期
本文編號:2531801
本文鏈接:http://www.sikaile.net/wenyilunwen/guanggaoshejilunwen/2531801.html