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