《Hadoop MapReduce性能优化》一1.3 Hadoop MapReduce的工作原理
本節(jié)書摘來異步社區(qū)《Hadoop MapReduce性能優(yōu)化》一書中的第1章,第1.3節(jié),作者: 【法】Khaled Tannir 譯者: 范歡動 責(zé)編: 楊海玲,更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號查看。
1.3 Hadoop MapReduce的工作原理
Hadoop MapReduce性能優(yōu)化
經(jīng)過一個或者多個步驟,MapReduce編程模型可以用來處理許多大規(guī)模數(shù)據(jù)問題,還可以更高效地實(shí)現(xiàn)MapReduce編程模型來支持使用大量機(jī)器處理大量數(shù)據(jù)的問題。在大數(shù)據(jù)的背景下,可以處理的數(shù)據(jù)規(guī)模可以大到無法在單機(jī)存儲。
在典型的Hadoop MapReduce框架下,數(shù)據(jù)拆分為數(shù)據(jù)塊并分發(fā)到集群內(nèi)的多個節(jié)點(diǎn)上。MapReduce框架通過把計(jì)算邏輯轉(zhuǎn)移到數(shù)據(jù)所在的機(jī)器,而不是把數(shù)據(jù)轉(zhuǎn)移到其能夠得以處理的機(jī)器上,從而充分利用數(shù)據(jù)的本地性優(yōu)勢。MapReduce應(yīng)用的大多數(shù)輸入數(shù)據(jù)塊存放在本地節(jié)點(diǎn),因而能夠迅速加載,而且可以并行讀取在多個節(jié)點(diǎn)上的多個數(shù)據(jù)塊。因此,MapReduce能夠達(dá)到很高的綜合I/O帶寬和數(shù)據(jù)處理速率。
要啟動一項(xiàng)MapReduce作業(yè),Hadoop會創(chuàng)建一個MapReduce應(yīng)用的實(shí)例并把作業(yè)提交給JobTracker。然后,作業(yè)被拆分為map任務(wù)(也叫作mapper)和reduce任務(wù)(也叫作reducer)。
Hadoop啟動MapReduce作業(yè)時,輸入數(shù)據(jù)集拆分為大小相等的數(shù)據(jù)塊,并采用心跳協(xié)議(heartbeat protocol)分配任務(wù)。每個數(shù)據(jù)塊被調(diào)度到一個TaskTracker節(jié)點(diǎn)上并由一個map任務(wù)處理。
每項(xiàng)任務(wù)都在一個工作節(jié)點(diǎn)的可用插槽上執(zhí)行,每個節(jié)點(diǎn)會配置固定數(shù)量的map插槽和固定數(shù)量的reduce插槽。如果所有可用插槽都被占用,掛起的任務(wù)就需要等待一些插槽被釋放。
TaskTracker周期性地向JobTracker發(fā)送其狀態(tài)。當(dāng)TaskTracker節(jié)點(diǎn)空閑時,JobTracker節(jié)點(diǎn)會給它分配新任務(wù)。JobTracker節(jié)點(diǎn)在散發(fā)數(shù)據(jù)塊時會考慮數(shù)據(jù)本地性,總是試圖把本地?cái)?shù)據(jù)塊分配給TaskTracker節(jié)點(diǎn)。如果嘗試失敗,JobTracker節(jié)點(diǎn)會分配一個本地機(jī)架或者隨機(jī)數(shù)據(jù)塊給TaskTracker節(jié)點(diǎn)。
當(dāng)所有的map函數(shù)都執(zhí)行結(jié)束時,運(yùn)行時系統(tǒng)會將中間鍵值對分組,并發(fā)起一組reduce任務(wù)來生成最終結(jié)果。接下來執(zhí)行過程從shuffle階段轉(zhuǎn)向reduce階段。在這個最終的reduce階段,reduce函數(shù)被調(diào)用來處理中間數(shù)據(jù)并寫最終輸出。
用戶經(jīng)常使用不同的術(shù)語來表述Hadoop的map和reduce任務(wù)、子任務(wù)、階段、子階段。map任務(wù)包含了兩個子任務(wù)(map和merge),而reduce任務(wù)僅包含一個任務(wù)。然而,shuffle和sort首先發(fā)生,并由系統(tǒng)完成。每個子任務(wù)又拆分為多個子階段,如read-map、spill、merge、copy-map和reduce-write。
總結(jié)
以上是生活随笔為你收集整理的《Hadoop MapReduce性能优化》一1.3 Hadoop MapReduce的工作原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《CCNA无线640-722认证考试指南
- 下一篇: 《Windows 8 权威指南》——1.