林子雨大數(shù)據(jù)技術(shù)原理及應(yīng)用第七章課后題答案_第1頁
林子雨大數(shù)據(jù)技術(shù)原理及應(yīng)用第七章課后題答案_第2頁
林子雨大數(shù)據(jù)技術(shù)原理及應(yīng)用第七章課后題答案_第3頁
林子雨大數(shù)據(jù)技術(shù)原理及應(yīng)用第七章課后題答案_第4頁
林子雨大數(shù)據(jù)技術(shù)原理及應(yīng)用第七章課后題答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上大數(shù)據(jù)技術(shù)第七章課后題答案黎貍1. 試述MapReduce和Hadoop的關(guān)系。谷歌公司最先提出了分布式并行編程模型MapReduce, Hadoop MapReduce是它的開源實現(xiàn)。谷歌的MapReduce運行在分布式文件系統(tǒng)GFS上,與谷歌類似,HadoopMapReduce運行在分布式文件系統(tǒng)HDFS上。相對而言,HadoopMapReduce 要比谷歌MapReduce 的使用門檻低很多,程序員即使沒有任何分布式程序開發(fā)經(jīng)驗,也可以很輕松地開發(fā)出分布式程序并部署到計算機集群中。2. MapReduce 是處理大數(shù)據(jù)的有力工具,但不是每個任

2、務(wù)都可以使用MapReduce來進行處理。試述適合用MapReduce來處理的任務(wù)或者數(shù)據(jù)集需滿足怎樣的要求。適合用MapReduce來處理的數(shù)據(jù)集,需要滿足一個前提條件: 待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集,而且每一個小數(shù)據(jù)集都可以完全并行地進行處理。3. MapReduce 模型采用Master(JobTracker)-Slave(TaskTracker)結(jié)構(gòu), 試描述JobTracker 和TaskTracker的功能。 MapReduce 框架采用了Master/Slave 架構(gòu),包括一個Master 和若干個Slave。Master

3、0;上運行JobTracker,Slave 上運行TaskTrackero 用戶提交的每個計算作業(yè),會被劃分成若千個任務(wù)。JobTracker 負責(zé)作業(yè)和任務(wù)的調(diào)度,監(jiān)控它們的執(zhí)行,并重新調(diào)度已經(jīng)失敗的任務(wù)。TaskTracker負責(zé)執(zhí)行由JobTracker指派的任務(wù)。4. TaskTracker 出現(xiàn)故障會有什么影響?該故障是如何處理的?5. MapReduce計算模型的核心是Map函數(shù)和Reduce函數(shù),試述這兩個函數(shù)各自的輸人、輸出以及處理過程。Map函數(shù)的輸人是來自于分布式文件系統(tǒng)的文件塊,這些文件塊的格式是任意的,可以是文檔,也可以是二進制格式。文件塊

4、是一系列元素的集合,這些元素是任意類型的,同一個元素不能跨文件塊存儲。Map函數(shù)將輸人的元素轉(zhuǎn)換成<key,value形式的鍵值對,鍵和值的類型也是任意的,其中,鍵不同于一般的標(biāo)志屬性,即鍵沒有唯一性,不能作為輸出的身份標(biāo)識,即使是同一輸人元素,也可通過一個Map任務(wù)生成具有相同鍵的多個<key,value>。Reduce函數(shù)的任務(wù)就是將輸人的一-系列具有相同鍵的鍵值對以某種方式組合起來,輸出處理后的鍵值對,輸出結(jié)果會合并成一個文件。用戶可以指定Reduce任務(wù)的個數(shù)(如n個),并通知實現(xiàn)系統(tǒng),然后主控進程通常會選擇一個Hash函數(shù),Map任務(wù)輸出的每個鍵都會經(jīng)過Hash函數(shù)

5、計算,并根據(jù)哈希結(jié)果將該鍵值對輸人相應(yīng)的Reduce任務(wù)來處理。對于處理鍵為k的Reduce任務(wù)的輸人形式為<K,<v1,v2,vn>>.,輸出為<k,V>。6. 試述MapReduce的工作流程(需包括提交任務(wù)、Map、Shuffle、 Reduce的過程)。MapReduce框架使用InputFormat模塊做Map前的預(yù)處理,比如,驗證輸入的格式是否符合輸人定義;然后,將輸入文件切分為邏輯上的多個InputSplit, InputSplit 是MapReduce對文件進行處理和運算的輸人單位,只是一個邏輯概念, 每個InputSplit并沒有對文件進行

6、實際切割,只是記錄了要處理的數(shù)據(jù)的位置和長度。因為InputSplit 是邏輯切分而非物理切分,所以,還需要通過RecordReader (RR)根據(jù)InputSplit中的信息來處理InputSplit中的具體記錄,加載數(shù)據(jù)并轉(zhuǎn)換為適合Map任務(wù)讀取的鍵值對,輸入給Map任務(wù)。Map任務(wù)會根據(jù)用戶自定義的映射規(guī)則,輸出一系列的<key,value>作為中間結(jié)果。為了讓Reduce可以并行處理Map的結(jié)果,需要對Map的輸出進行-一定的分區(qū)、排序(Sort)、合并( Combine)、歸并( Merge)等操作,得到<keyvalue-list>形式的中間結(jié)果, 再交給

7、對應(yīng)的Reduce進行處理,這個過程稱為Shuffle。Reduce 以一系列<key,value-list>中間結(jié)果作為輸入, 執(zhí)行用戶定義的邏輯,輸出結(jié)果給OutputFormat模塊。OutputFormat 模塊會驗證輸出目錄是否已經(jīng)存在以及輸出結(jié)果類型是否符合配置文件中的配置類型,如果都滿足,就輸出Reduce的結(jié)果到分布式文件系統(tǒng)。7. Shuffle 過程是MapReduce 工作流程的核心,也被稱為奇跡發(fā)生的地方,試分析Shuffle過程的作用。Shufle,是指對Map輸出結(jié)果進行分區(qū)、排序、合并等處理并交給Reduce的過程。Shuffle 過程分為Map端的操

8、作和Reduce端的操作。 在Map端的Shuffle過程。Map的輸出結(jié)果首先被寫入緩存,當(dāng)緩存滿時,就啟動溢寫操作,把緩存中的數(shù)據(jù)寫入磁盤文件,并清空緩存。當(dāng)啟動溢寫操作時,首先需要把緩存中的數(shù)據(jù)進行分區(qū),然后對每個分區(qū)的數(shù)據(jù)進行排序( Sort)和合并( Combine),之后再寫入磁盤文件。每次溢寫操作會生成-一個新的磁盤文件,隨著Map任務(wù)的執(zhí)行,磁盤中就會生成多個溢寫文件。在Map任務(wù)全部結(jié)束之前,這些溢寫文件會被歸并( Merge)成-一個大的磁盤文件,然后,通知相應(yīng)的Reduce任務(wù)來領(lǐng)取屬于自己處理的數(shù)據(jù)。 在Reduce端的Shuffle 過程。Reduce 任務(wù)從Map端

9、的不同Map機器領(lǐng)回屬于自己處理的那部分數(shù)據(jù),然后,對數(shù)據(jù)進行歸并( Merge )后交給Reduce處理。8. 分別描述Map端和Reduce端的Shuffle過程(需包括Spill Sort、 Merge、Fetch 的過程)。(1)Map端的Shuffle過程: 輸入數(shù)據(jù)和執(zhí)行Map任務(wù)。 寫入緩存 溢寫(分區(qū),排序和合并) 文件歸并(2)Reduce端的Shuffle過程: “領(lǐng)取”數(shù)據(jù) 歸并數(shù)據(jù) 把數(shù)據(jù)輸入Reduce任務(wù)9. MapReduce 中有這樣-一個原則:移動計算比移動數(shù)據(jù)更經(jīng)濟。試述什么是本地計算,并分析為何要采用本地計算。 MapReduce設(shè)計的一個理念就

10、是“計算向數(shù)據(jù)靠攏”,而不是“數(shù)據(jù)向計算靠攏”,因為移動數(shù)據(jù)需要大量的網(wǎng)絡(luò)傳輸開銷,尤其是在大規(guī)模數(shù)據(jù)環(huán)境下,這種開銷尤為驚人,所以,移動計算要比移動數(shù)據(jù)更加經(jīng)濟。本地計算:在一個集群中,只要有可能,MapReduce框架就會將Map程序就近地在HDFS數(shù)據(jù)所在的節(jié)點運行,即將計算節(jié)點和存儲節(jié)點放在一起運行,從而減少了節(jié)點間的數(shù)據(jù)移動開銷。10. 試說明一個MapReduce程序在運行期間,所啟動的Map任務(wù)數(shù)量和Reduce任務(wù)數(shù)量各是由什么因素決定的。MapReduce的核心思想可以用“分而治之”來描述,一個大的MapReduce作業(yè),首先會被拆分成許多個Map任務(wù)在多臺機器上并行執(zhí)行,即

11、Map任務(wù)的數(shù)量取決于mapReduce作業(yè)的大小。當(dāng)Map任務(wù)結(jié)束后,會生成以<key,value>形式表示的許多中間結(jié)果。然后,這些中間結(jié)果會被分發(fā)到多個Reduce任務(wù)在多臺機器上并行執(zhí)行,具有相同key的<key,value>會被發(fā)送到同一個Reduce任務(wù)那里,Reduce任務(wù)會對中間結(jié)果進行匯總計算得到最后結(jié)果,并輸出到分布式文件系統(tǒng)中。即reduce的任務(wù)數(shù)量取決于Map輸出結(jié)果中key的數(shù)量。11. 是否所有的MapReduce程序都需要經(jīng)過Map和Reduce這兩個過程?如果不是,請舉例說明。不是。對于關(guān)系的選擇運算,只需要Map過程就能實現(xiàn),對于關(guān)系

12、R 中的每個元組t,檢測是否是滿足條件的所需元組,如果滿足條件,則輸出鍵值對<,>,也就是說,鍵和值都是t。這時的Reduce函數(shù)就只是一個恒等式,對輸入不做任何變換就直接輸出。12. 試分析為何采用Combiner可以減少數(shù)據(jù)傳輸量?是否所有的MapReduce程序都可以采用Combiner?為什么? 對于每個分區(qū)內(nèi)的所有鍵值對,后臺線程會根據(jù)key 對它們進行內(nèi)存排序(Sort ),排序是MapReduce 的默認操作。排序結(jié)束后,還包含一個可選的合并(Combine )操作。如果用戶事先沒有定義Combiner 函數(shù)

13、,就不用進行合并操作。如果用戶事先定義了Combiner 函數(shù),則這個時候會執(zhí)行合并操作,從而減少需要溢寫到磁盤的數(shù)據(jù)量。  所謂“合并”,是指將那些具有相同key 的<key,value>的value 加起來,比如,有兩個鍵值對<*xmu",1>和<*xmu",1>,經(jīng)過合并操作以后就可以得到一個鍵值對<*xmu",2>,減少了鍵值對的數(shù)量。不過,并非所有場合都可以使用Combiner,因為,Combiner的輸出是Reduce任務(wù)的輸人,Combiner絕不能改變

14、Reduce任務(wù)最終的計算結(jié)果,一般而言,累加、最大值等場景可以使用合并操作。13. MapReduce 程序的輸入文件、輸出文件都存儲在HDFS中,而在Map任務(wù)完成時的中間結(jié)果則存儲在本地磁盤中。試分析中間結(jié)果存儲在本地磁盤而不是HDFS上有何優(yōu)缺點。因為Map的輸出是中間的結(jié)果,這個中間結(jié)果是由reduce處理后才產(chǎn)生最終輸出結(jié)果,而且一旦作業(yè)完成,map的輸出結(jié)果就可以刪除。如果把它存儲在hdfs中就并備份,有些小題大作,如果運行map任務(wù)的節(jié)點將map中間結(jié)果傳送給reduce任務(wù)之前失敗,hadoop將在另一個節(jié)點上重新運行這個map任務(wù)以在此構(gòu)建中間結(jié)果。14. 早期版本的HDF

15、S,其默認塊( Block)大小為64MB,而較新的版本默認為128MB,采用較大的塊具有什么影響和優(yōu)缺點?優(yōu)點:塊尋址時間變短15. 試畫出使用MapReduce來對英語句子“Whatever is worth doing is worth doing well"進行單詞統(tǒng)計的過程。Map輸出<Whatever,1><is,1><worth,1><doing,1><is,1><worth,1><doing,1><well,1>Map輸入“Whatever is worth doing is worth doing well"MapReduce任務(wù)的輸出Map端Shuffle后的結(jié)果發(fā)送給Reduce任務(wù)Map輸出的結(jié)果<Whatever,1><is,2><worth,2><doing,2><well,1><Whatever,1><is,<1,1>><worth,<1,1>><doing,<1,1>><well,1><Whatever,1><is,1><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論