hadoop常見筆試題答案_第1頁(yè)
hadoop常見筆試題答案_第2頁(yè)
hadoop常見筆試題答案_第3頁(yè)
hadoop常見筆試題答案_第4頁(yè)
hadoop常見筆試題答案_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余2頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、Hadoop測(cè)試題.填空題,1分(41空),2分(42空)共125分1. (每空1分) data node 負(fù)責(zé)HDFS數(shù)據(jù)存儲(chǔ)。2. (每空1分)HDFS中的block默認(rèn)保存3 份。3. (每空1分)ResourceManager程序通常與 NameNode在一個(gè)節(jié)點(diǎn)啟動(dòng)。4. (每空1分)hadoop 運(yùn)行的模式有:?jiǎn)螜C(jī)模式、偽分布模式、 完全分布式。5. (每空1分)Hadoop集群搭建中常用的 4個(gè)配置文件為:core-site.xml 、 hdfs-site.xml、 mapred-site.xml 、 yarn-site.xml 。6. (每空2分)HDFS將要存儲(chǔ)的大文件進(jìn)行分

2、割,分割后存放在既定的存儲(chǔ)塊中,并通過(guò)預(yù)先設(shè)定的優(yōu)化處理,模式對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行預(yù)處理,從而解決了大文件儲(chǔ)存與計(jì)算的需求。7. (每空2分)一個(gè)HDFS集群包括兩大部分,即name node 與data node 。一般來(lái)說(shuō),一個(gè)集群中會(huì)有一個(gè)n ame node 和多個(gè) data node共同工作。8. (每空2分)name node 是集群的主服務(wù)器,主要是用于對(duì)HDFS中所有的文件及內(nèi)容數(shù)據(jù)進(jìn)行維護(hù),并不斷讀取記錄集群中data node主機(jī)情況與工作狀態(tài),并通過(guò)讀取與寫入鏡像日志文件的方式進(jìn)行存儲(chǔ)。9. (每空2分)data node在HDFS集群中擔(dān)任任務(wù)具體執(zhí)行角色,是集群的工作節(jié)點(diǎn)

3、。文件被分成若干個(gè)相同大小的數(shù)據(jù)塊, 分別存儲(chǔ)在若干個(gè) data node 上, data node會(huì)定 期向集群內(nèi) name node發(fā)送自己的運(yùn)行狀態(tài)與存儲(chǔ)內(nèi)容, 并根據(jù)nam node發(fā)送的指 令進(jìn)行工作。10. (每空2分)name node負(fù)責(zé)接受客戶端發(fā)送過(guò)來(lái)的信息,然后將文件存儲(chǔ)位置信息發(fā) 送給clie nt ,由clie nt直接與data node 進(jìn)行聯(lián)系,從而進(jìn)行部分文件的運(yùn)算與操作。11. (每空1分)block 是HDFS的基本存儲(chǔ)單元,默認(rèn)大小是128M。12. (每空1分)HDFS還可以對(duì)已經(jīng)存儲(chǔ)的 Block進(jìn)行多副本備份,將每個(gè) Block至少?gòu)?fù)制到3_個(gè)相互

4、獨(dú)立的硬件上,這樣可以快速恢復(fù)損壞的數(shù)據(jù)。13. (每空2分)當(dāng)客戶端的讀取操作發(fā)生錯(cuò)誤的時(shí)候,客戶端會(huì)向name node報(bào)告錯(cuò)誤,并請(qǐng)求name node排除錯(cuò)誤的data node后,重新根據(jù)距離排序,從而獲得一個(gè)新的的讀取路徑。如果所有的data node都報(bào)告讀取失敗,那么整個(gè)任務(wù)就讀取失敗。14. (每空2分)對(duì)于寫出操作過(guò)程中出現(xiàn)的問(wèn)題,F(xiàn)SDataCutputStream并不會(huì)立即關(guān)閉??蛻舳讼騈ame node報(bào)告錯(cuò)誤信息,并直接向提供備份的data node中寫入數(shù)據(jù)。備份data node 被升級(jí)為首選 data node,并在其余 2 個(gè) data node 中備份復(fù)制

5、數(shù)據(jù)。NameNode對(duì)錯(cuò)誤的DataNode進(jìn)行標(biāo)記以便后續(xù)對(duì)其進(jìn)行處理。hdfs namenode-formatstart-dfs shstart-yarn.sh。stop-dfs.sh。15. (每空1分)格式化HDFS系統(tǒng)的命令為:16. (每空1分)啟動(dòng)hdfs的shell腳本為:17. (每空1分)啟動(dòng)yarn的shell腳本為:18. (每空1分)停止hdfs的shell腳本為:19. (每空 1 分)hadoop 創(chuàng)建多級(jí)目錄(如:/a/b/c )的命令為:hadoop fs - mkdir - p /a/b/cHadoop common 、 HDFS20. (每空1分)had

6、oop顯示根目錄命令為:hadoop fs - Isr21. (每空1分)hadoop包含的四大模塊分別是:Mapreduceyarn22. (每空1分)namenode默認(rèn)的 WebUI訪問(wèn)端口號(hào)為:50070 。23. (每空1分)ResourceManager默認(rèn)的 WebUI訪問(wèn)端口號(hào)為: 8088。24. (每空1分)historyServer默認(rèn)的 WebUI訪問(wèn)端口號(hào)為:19888。25. (每空1分)修改blocksize大小的屬性是:dfs.blocksize,在hdfs-site.xml配置文件里。26. (每空1分)HDFS中name node的RPC端口號(hào)為:8021,

7、其作用是:接收Clie nt連接的RPC端口,用于獲取文件系統(tǒng)metadata信息 。27. (每空2分)Map per類中有 4 個(gè)函數(shù)。28. (每空1分)默認(rèn)NameNode周期性從DataNode接收心跳信號(hào)的時(shí)間間隔為:3s 。29. (每空1分)hadoop集群默認(rèn)機(jī)架感知是啟用的。是否正確:錯(cuò)誤 。30. (每空 2 分)Hadoop Map/Reduce Shuffle 過(guò)程:inputsplit->map 函數(shù)一>內(nèi)存緩沖區(qū)Partition sort combine spill-map 端 merge ->reduce 端 copy >merge r

8、educe 函 數(shù)。31. (每空2分)一個(gè)NodeManager能夠同時(shí)運(yùn)行最大 reduce任務(wù)數(shù)(默認(rèn)):2 。32. (每空2分)默認(rèn)情況下,一個(gè)同時(shí)運(yùn)行了 name node , seco ndary name node 和ResourceManager的主節(jié)點(diǎn),所使用的內(nèi)存容量為3000 M。33. (每空2分)Hadoop集群中有三種作業(yè)調(diào)度算法,分別為FIFO調(diào)度 ,計(jì)算能力調(diào)度和公平調(diào)度。34. (每空1分)HA產(chǎn)生的背景是:為了解決單 NN可能出現(xiàn)宕機(jī)導(dǎo)致集群不可用或數(shù)據(jù)丟失的問(wèn)題 。35. (每空1分)通過(guò) Zookeeper管理兩個(gè)或者多個(gè) NameNode,使一個(gè)Na

9、meNode為active狀態(tài),并且同步每個(gè) NN的元數(shù)據(jù),如果active狀態(tài)的NN宕機(jī)后馬上啟用狀態(tài)為standby狀態(tài)的備用節(jié)點(diǎn)。36. (每空1分)job是客戶端需要執(zhí)行的一個(gè)工作單元。37. (每空1分)Hadoop將作業(yè)分成若干個(gè)task 來(lái)執(zhí)行,其中包括:maptask 和reducetask 。38. (每空2分)comb in er是通過(guò) Reducer 類來(lái)定義的。39. (每空2分)map任務(wù)將其輸出寫入到本地磁盤。40. (每空2分)reduce的輸出通常存儲(chǔ)在HDFS中以實(shí)現(xiàn)可靠存儲(chǔ)。41. (每空2分)HDFS會(huì)對(duì)寫入的所有數(shù)據(jù)計(jì)算校驗(yàn)和 ,并在讀取數(shù)據(jù)時(shí)驗(yàn)證 校驗(yàn)

10、和42. (每空2分)序列化用于分布式數(shù)據(jù)處理的兩大領(lǐng)域?yàn)椋哼M(jìn)程間通信和永久存儲(chǔ) 。43. (每空2分)hadoop使用自己的序列化格式為: Writable 。簡(jiǎn)答題,3分(17題),5分(5題)共75分1. (3分)簡(jiǎn)要描述如何安裝配置apache的一個(gè)開源hadoop,只描述即可,無(wú)需列出具體步驟,列出具體步驟更好。答:1使用root賬戶登錄2修改IP3修改host主機(jī)名4配置SSH免密碼登錄5關(guān)閉防火墻6 安裝JDK7 解壓 hadoop 安裝包8 配置 hadoop 的核心文件 hadoop-env.sh ,core-site.xml , mapred-site.xml , hdfs

11、-site.xml9 配置 hadoop 環(huán)境變量10 格式化 hadoop namenode -format11 啟動(dòng)節(jié)點(diǎn) start-all.sh2. (3 分 )請(qǐng)列出正常的 hadoop 集群中 hadoop 都分別需要啟動(dòng)哪些進(jìn)程,他們的作用 分別都是什么,請(qǐng)盡量列的詳細(xì)一些。答:namenode :管理集群,存儲(chǔ)數(shù)據(jù)的原信息,并管理記錄 datanode 中的文件信息。 secondarynamenode :它是 namenode 的一個(gè)快照,會(huì)根據(jù) configuration 中設(shè)置的值來(lái) 決定多少時(shí)間周期性的去 cp 一下 namenode ,記錄 namenode 中的 me

12、tadata 及其它數(shù)據(jù)。Data node :存儲(chǔ)數(shù)據(jù)ResourceManager:ResourceManager 負(fù)責(zé)集群中所有資源的統(tǒng)一管理和分配,它接收來(lái)自各個(gè)節(jié)點(diǎn)( NodeManager )的資源匯報(bào)信息,并把這些信息按照一定的策略分配給各個(gè)應(yīng) 用程序(實(shí)際上是 ApplicationManager )NodeManager :是YARN中每個(gè)節(jié)點(diǎn)上的代理,它管理Hadoop集群中單個(gè)計(jì)算節(jié)點(diǎn)(3 分)請(qǐng)寫出以下的 shell 命令(1)殺死一個(gè) job(2)刪除 hdfs 上的 /tmp/aaa 目錄(3)加入一個(gè)新的存儲(chǔ)節(jié)點(diǎn)和刪除一個(gè)節(jié)點(diǎn)需要執(zhí)行的命令答:(1) map re

13、d job -list 得到 job 的 id,然后執(zhí)行 mapred job - kill jobld 就可以殺死一個(gè)指 定 jobId 的 job 工作了。(2)hadoop fs -rmr /tmp/aaa 或者 hdfs dfs - rmr /tmp/aaa( 3)增加一個(gè)新的節(jié)點(diǎn)在新的節(jié)點(diǎn)上執(zhí)行hadoop-daemon.sh start datanode 然后在主節(jié)點(diǎn)中執(zhí)行 hdfs dfsadmin -refreshNodes 刪除一個(gè)節(jié)點(diǎn)的時(shí)候,只需要在主節(jié)點(diǎn)執(zhí)行hdfs dfsadmi n - refresh nodes3. (3 分)請(qǐng)簡(jiǎn)述 mapreduce 中的 com

14、bine 和 partition 的作用答:combiner是發(fā)生在 map的最后一個(gè)階段,其原理也是一個(gè)小型的reducer,主要作用是減少輸出到 reduce 的個(gè)數(shù),減少 reducer 的輸入,提高 reducer 的執(zhí)行效率。Partition 的主要作用就是指定輸出到 reduce 的個(gè)數(shù)的。4. (3分)hdfs的體系結(jié)構(gòu)答:HDFS采用了主從(Master/Slave)結(jié)構(gòu)模型,一個(gè) HDFS集群是由一個(gè) NameNode和若 干個(gè) DataNode 組成的。其中 NameNode 作為主服務(wù)器,管理文件系統(tǒng)的命名空間和客戶端 對(duì)文件的訪問(wèn)操作;集群中的 DataNode 管理

15、存儲(chǔ)的數(shù)據(jù)5. (3分)三個(gè)data node中當(dāng)有一個(gè)data node出現(xiàn)錯(cuò)誤時(shí)會(huì)怎樣? 答:當(dāng)有一個(gè)data node出現(xiàn)錯(cuò)誤的時(shí)候,name node會(huì)將那個(gè)data node上的數(shù)據(jù)拷貝到其 他的節(jié)點(diǎn)去進(jìn)行存儲(chǔ)。6. (3分)文件大小默認(rèn)為 64M,改為128M有什么影響?答:更改文件的block塊大小,需要根據(jù)我們的實(shí)際生產(chǎn)中來(lái)更改block的大小,如果block定義的太小,大的文件都會(huì)被切分成太多的小文件,減慢用戶上傳效率,如果block定義的太大,那么太多的小文件可能都會(huì)存到一個(gè)block塊中,雖然不浪費(fèi)硬盤資源,可是還是會(huì)增加name node的管理內(nèi)存壓力。7. (3 分)

16、NameNode 與 SecondaryNameNode 的區(qū)別與聯(lián)系?答:seco ndaryNameNode更像是 Name node的一個(gè)冷備份, 當(dāng)name node宕機(jī)之后,可以從Sec on daryName node上面恢復(fù)部分?jǐn)?shù)據(jù)。8.(5分)在一個(gè)運(yùn)行的 hadoop任務(wù)中,什么是 InputSplit ?答: 0InputSplit是MapReduce 對(duì)文件進(jìn)仃處理和運(yùn)算的輸入單位,只是'個(gè)邏輯概念,每個(gè)InputSplit并沒有對(duì)文件實(shí)際的切割,只是記錄了要處理的數(shù)據(jù)的位置(包括文件的path和hosts)和長(zhǎng)度(由start和length決疋),默認(rèn)情況下與b

17、lock 一樣大。9. (3分)參考下列 M/R系統(tǒng)的場(chǎng)景:hdfs塊大小為64MB,輸入類為 File In putFormat, 有3個(gè)文件的大小分別為 64KB, 65MB, 127MB,Hadoop框架會(huì)把這些文件拆分為 多少塊?答:64k一個(gè) block65MB-兩個(gè)文件:64MB 是一個(gè) block,1MB 是一個(gè) block 127MB-兩個(gè)文件:64MB 是一個(gè) block,63MB 是一個(gè) block10. (5 分)hadoop 中 RecordReader 的作用是什么?答:RecorderReader是一個(gè)接口,主要是用來(lái)讀取文件的輸入鍵值對(duì)的,我們也可以自定義輸入的k

18、ey,value對(duì)的讀取規(guī)則。屬于 split和map per之間的一個(gè)過(guò)程,將 in putsplit輸出的 行為一個(gè)轉(zhuǎn)換記錄,成為 key-value的記錄形式提供給 mapper11. (3分)Map階段結(jié)束后,Hadoop框架會(huì)處理:Partitioning, Shuffle和Sort,在這幾 個(gè)階段都發(fā)生了什么?答:Partition是對(duì)輸出的key,value進(jìn)行分區(qū),可以自定義分區(qū),按照業(yè)務(wù)需求,將 map的 輸出歸分到多個(gè)不同的文件中將map的輸出作為輸入傳給 reducer稱為shufflesort是排序的過(guò)程,將 map的輸出,作為reduce的輸入之前,我們可以自定義排序

19、,按照key來(lái)對(duì)map的輸出進(jìn)行排序12. (5分)如果沒有定義partitioner,那數(shù)據(jù)在被送達(dá) reducer前是如何被分區(qū)的?答:Partiti on er是在 map函數(shù)執(zhí)行 con text.write()時(shí)被調(diào)用。用戶可以通過(guò)實(shí)現(xiàn)自定義的 Partitioner來(lái)控制哪個(gè)key被分配給哪個(gè) Reducer。hadoop有一個(gè)默認(rèn)的分區(qū)類, HashPartioer類,通過(guò)對(duì)輸入的 k2去hash值來(lái)確認(rèn) map 輸出的k2, v2送到哪一個(gè)reduce中去執(zhí)行。13. (3 分)什么是 combiner ?答:comb in er就是規(guī)約操作,通過(guò)對(duì) map輸出的數(shù)量進(jìn)行規(guī)約,

20、可以減少 reduce的數(shù)量, 提高執(zhí)行效率。combiner的輸入輸出類型必須和 mapper的輸出以及reducer的輸入類型一 致14. (3分)分別舉例什么情況要使用combiner,什么情況不使用?答:求平均數(shù)的時(shí)候就不需要用combiner,因?yàn)椴粫?huì)減少reduce執(zhí)行數(shù)量。在其他的時(shí)候,可以依據(jù)情況,使用combiner,來(lái)減少map的輸出數(shù)量,減少拷貝到reduce的文件,從而減輕reduce的壓力,節(jié)省網(wǎng)絡(luò)開銷,提升執(zhí)行效率15. (5分)簡(jiǎn)述Hadoop中replication (復(fù)本)放置策略?答:Hadoop的默認(rèn)布局策略是在運(yùn)行客戶端的節(jié)點(diǎn)上放第一個(gè)復(fù)本;第二個(gè)復(fù)本放

21、在與第一個(gè)不同且隨機(jī)另外選擇的機(jī)架中的節(jié)點(diǎn)上(離架);第三個(gè)復(fù)本與第二個(gè)復(fù)本放在同一個(gè)機(jī)架上,且隨機(jī)選擇另一個(gè)節(jié)點(diǎn)。16. (5分)如何為一個(gè)hadoop任務(wù)設(shè)置 mappers的數(shù)量?答:map的數(shù)量通常是由hadoop集群的DFS塊大小確定的,也就是輸入文件的總塊數(shù),正 常的map數(shù)量的并行規(guī)模大致是每一個(gè)Node是10100個(gè),對(duì)于CPU消耗較小的作業(yè)可以設(shè)置Map數(shù)量為300個(gè)左右,但是由于 hadoop的沒一個(gè)任務(wù)在初始化時(shí)需要一定的時(shí)間, 因此比較合理的情況是每個(gè)map執(zhí)行的時(shí)間至少超過(guò)1分鐘。具體的數(shù)據(jù)分片是這樣的,InputFormat在默認(rèn)情況下會(huì)根據(jù)hadoop集群的DFS

22、塊大小進(jìn)行分片,每一個(gè)分片會(huì)由一個(gè)map任務(wù)來(lái)進(jìn)行處理,當(dāng)然用戶還是可以通過(guò)參數(shù)mapred.min.split.size參數(shù)在作業(yè)提交客戶端進(jìn)行自定義設(shè)置 。還有一個(gè)重要參數(shù)就是 mapred.map.tasks,這個(gè)參數(shù)設(shè)置的 map數(shù) 量?jī)H僅是一個(gè)提示,只有當(dāng)InputFormat決定了 map任務(wù)的個(gè)數(shù)比 mapred.map.tasks值小時(shí)才起作用。同樣,Map任務(wù)的個(gè)數(shù)也能通過(guò) 使用JobConf的conf.setNumMapTasks(int num) 方法來(lái)手動(dòng)地設(shè)置。這個(gè)方法能夠用來(lái)增加map任務(wù)的個(gè)數(shù),但是不能設(shè)定任務(wù)的個(gè)數(shù)小于Hadoop系統(tǒng)通過(guò)分割輸入數(shù)據(jù)得到的值。當(dāng)然為了提高集群的并發(fā)效率,可以設(shè)置一個(gè) 默認(rèn)的map數(shù)量,當(dāng)用戶的 map數(shù)量較小或者比本身自動(dòng)分割的值還小時(shí)可以使用一個(gè)相 對(duì)交大的默認(rèn)值,從而提高整體hadoop集群的效率。17. (3分)hdfs文件寫入的流程?答:1)Clien

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論