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

下載本文檔

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

文檔簡介

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

2、 2 分 )HDFS 將要存儲的大文件進(jìn)行分割,分割后存放在既定的存儲塊中,并通過預(yù)先設(shè)定的優(yōu)化處理, 模式對存儲的數(shù)據(jù)進(jìn)行預(yù)處理,從而解決了大文件儲存與計算的需求。7.(每空 2 分 )一個 HDFS集群包括兩大部分, 即 namenode與 datanode 。一般來說, 一個集群中會有一個namenode 和多個 datanode共同工作。8.(每空 2 分 ) namenode 是集群的主服務(wù)器,主要是用于對HDFS中所有的文件及內(nèi)容數(shù)據(jù)進(jìn)行維護(hù), 并不斷讀取記錄集群中datanode主機(jī)情況與工作狀態(tài), 并通過讀取與寫入鏡像日志文件的方式進(jìn)行存儲。9. (每空 2 分 ) datan

3、ode 在 HDFS集群中擔(dān)任任務(wù)具體執(zhí)行角色,是集群的工作節(jié)點。文件被分成若干個相同大小的數(shù)據(jù)塊,分別存儲在若干個datanode上,datanode 會定期向集群內(nèi)namenode 發(fā)送自己的運(yùn)行狀態(tài)與存儲內(nèi)容,并根據(jù)namnode發(fā)送的指令進(jìn)行工作。10. (每空 2 分 ) namenode 負(fù)責(zé)接受客戶端發(fā)送過來的信息,然后將文件存儲位置信息發(fā)送給 client ,由 client 直接與 datanode 進(jìn)行聯(lián)系,從而進(jìn)行部分文件的運(yùn)算與操作。11.(每空 1分 ) block 是 HDFS的基本存儲單元,默認(rèn)大小是128M。12.(每空 1分 )HDFS還可以對已經(jīng)存儲的 Bl

4、ock 進(jìn)行多副本備份,將每個Block 至少復(fù)制到3 個相互獨立的硬件上,這樣可以快速恢復(fù)損壞的數(shù)據(jù)。13.(每空 2 分 )當(dāng)客戶端的讀取操作發(fā)生錯誤的時候,客戶端會向namenode報告錯誤, 并請求namenode 排除錯誤的datanode后,重新根據(jù)距離排序,從而獲得一個新的的讀取路徑。如果所有的datanode都報告讀取失敗,那么整個任務(wù)就讀取失敗。14.(每空 2分 )對于寫出操作過程中出現(xiàn)的問題,F(xiàn)SDataOutputStream 并不會立即關(guān)閉。客戶端向 Namenode 報告錯誤信息, 并直接向提供備份的datanode中寫入數(shù)據(jù)。 備份datanode 被升級為首選

5、datanode,并在其余 2 個 datanode中備份復(fù)制數(shù)據(jù)。NameNode 對錯誤的 DataNode 進(jìn)行標(biāo)記以便后續(xù)對其進(jìn)行處理。15.(每空 1分 )格式化 HDFS系統(tǒng)的命令為:hdfs namenode format。16.(每空 1分 )啟動 hdfs 的 shell 腳本為:start-dfs.sh。17.(每空 1分 )啟動 yarn 的 shell 腳本為:start-yarn.sh。18.(每空 1分 )停止 hdfs 的 shell 腳本為:stop-dfs.sh。19.(每空 1分 )hadoop 創(chuàng)建多級目錄(如:/a/b/c )的命令為:hadoop fs

6、 mkdir p /a/b/c。20.(每空 1分 )hadoop 顯示根目錄命令為:hadoop fs lsr。21.(每空1 分 )hadoop 包含的四大模塊分別是:Hadoop common、 HDFS、Mapreduce、 yarn 。22.(每空1分 )namenode 默認(rèn)的 WebUI 訪問端口號為:50070。23.(每空1分 )ResourceManager 默認(rèn)的 WebUI 訪問端口號為:8088。24.(每空1分 )historyServer 默認(rèn)的 WebUI 訪問端口號為:19888。25.(每空1分 )修改 blocksize 大小的屬性是: dfs.block

7、size,在 hdfs-site.xml配置文件里。26.(每空 1 分 )HDFS中 namenode 的 RPC端口號為:8021,其作用是:接收 Client 連接的 RPC端口,用于獲取文件系統(tǒng)metadata 信息。27.(每空2分 )Mapper 類中有 4個函數(shù)。28.(每空1分 )默認(rèn) NameNode 周期性從 DataNode 接收心跳信號的時間間隔為:3s 。29.(每空1分 )hadoop 集群默認(rèn)機(jī)架感知是啟用的。是否正確:錯誤。30.(每空2分 )Hadoop Map/Reduce Shuffle 過程:inputsplit->map 函數(shù) >內(nèi)存緩沖區(qū)

8、Partitionsortcombine spill-> map 端 merge ->reduce端 copy >merge reduce 函數(shù)。31.(每空2分 )一個 NodeManager 能夠同時運(yùn)行最大reduce 任務(wù)數(shù)(默認(rèn)) :2 。32.( 每 空2 分 ) 默 認(rèn) 情 況 下 , 一 個 同 時 運(yùn) 行 了 namenode , secondarynamenode 和ResourceManager 的主節(jié)點,所使用的內(nèi)存容量為3000M 。33.(每空2 分 )Hadoop 集群中有三種作業(yè)調(diào)度算法,分別為FIFO 調(diào)度,計算能力調(diào)度 和公平調(diào)度 。34.

9、(每空 1 分 )HA 產(chǎn)生的背景是:為了解決單 NN 可能出現(xiàn)宕機(jī)導(dǎo)致集群不可用或數(shù)據(jù)丟失的問題。35.(每空1分 )通過Zookeeper 管理兩個或者多個NameNode ,使一個 NameNode 為active狀態(tài),并且同步每個NN 的元數(shù)據(jù),如果active狀態(tài)的 NN 宕機(jī)后馬上啟用狀態(tài)為 standby 狀態(tài)的備用節(jié)點。36. (每空 1 分 ) job 是客戶端需要執(zhí)行的一個工作單元。37.(每空 1 分 )Hadoop將作業(yè)分成若干個task 來執(zhí)行,其中包括:maptask和reducetask 。38.(每空 2 分 )combiner是通過 Reducer類來定義的。

10、39.(每空 2 分 )map 任務(wù)將其輸出寫入到本地磁盤 。40.(每空 2分 )reduce 的輸出通常存儲在HDFS 中以實現(xiàn)可靠存儲。41.(每空 2分 )HDFS會對寫入的所有數(shù)據(jù)計算校驗和,并在讀取數(shù)據(jù)時驗證校驗和。42.(每空 2 分 )序列化用于分布式數(shù)據(jù)處理的兩大領(lǐng)域為:進(jìn)程間通信和永久存儲。43.(每空 2分 )hadoop 使用自己的序列化格式為:Writable 。二簡答題, 3 分( 17 題), 5 分( 5 題)共 75 分1. (3 分 )簡要描述如何安裝配置 apache 的一個開源 hadoop ,只描述即可,無需列出具體步驟,列出具體步驟更好。答:1 使用

11、 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-site.xml9配置 hadoop 環(huán)境變量10 格式化 hadoop namenode -format11啟動節(jié)點 start-all.sh2. (3 分 )請列出正常的 hadoop 集群中 hadoop 都分別需要啟動哪些進(jìn)程,他們的作用分別都是什么,請盡量列的詳細(xì)一些。答:namenode :管理集群,存儲數(shù)據(jù)

12、的原信息,并管理記錄datanode 中的文件信息。secondarynamenode :它是 namenode 的一個快照,會根據(jù)configuration 中設(shè)置的值來決定多少時間周期性的去cp 一下 namenode ,記錄 namenode 中的 metadata 及其它數(shù)據(jù)。Datanode:存儲數(shù)據(jù)ResourceManager:ResourceManager 負(fù)責(zé)集群中所有資源的統(tǒng)一管理和分配,它接收來自各個節(jié)點( NodeManager )的資源匯報信息,并把這些信息按照一定的策略分配給各個應(yīng)用程序(實際上是ApplicationManager )NodeManager :是

13、YARN中每個節(jié)點上的代理,它管理Hadoop 集群中單個計算節(jié)點(3 分 )請寫出以下的shell 命令( 1)殺死一個 job( 2)刪除 hdfs 上的 /tmp/aaa 目錄( 3)加入一個新的存儲節(jié)點和刪除一個節(jié)點需要執(zhí)行的命令答:( 1) mapred job -list 得到 job 的 id,然后執(zhí)行 mapred job kill jobId就可以殺死一個指定 jobId 的 job 工作了。( 2) hadoop fs -rmr /tmp/aaa 或者 hdfs dfs rmr /tmp/aaa ( 3)增加一個新的節(jié)點在新的節(jié)點上執(zhí)行hadoop-daemon.shsta

14、rt datanode然后在主節(jié)點中執(zhí)行hdfs dfsadmin -refreshNodes刪除一個節(jié)點的時候,只需要在主節(jié)點執(zhí)行hdfs dfsadmin refreshnodes3. (3 分 )請簡述 mapreduce 中的 combine 和 partition 的作用答:combiner 是發(fā)生在map 的最后一個階段,其原理也是一個小型的reducer ,主要作用是減少輸出到reduce 的個數(shù),減少reducer 的輸入,提高reducer 的執(zhí)行效率。Partition的主要作用就是指定輸出到reduce的個數(shù)的。4. (3 分 )hdfs 的體系結(jié)構(gòu)答:HDFS采用了主從

15、(Master/Slave )結(jié)構(gòu)模型,一個HDFS集群是由一個NameNode干個 DataNode 組成的。其中NameNode 作為主服務(wù)器,管理文件系統(tǒng)的命名空間和客戶端對文件的訪問操作;集群中的DataNode 管理存儲的數(shù)據(jù)和若5. (3 分 )三個 datanode 中當(dāng)有一個 datanode 出現(xiàn)錯誤時會怎樣?答:當(dāng)有一個 datanode 出現(xiàn)錯誤的時候, namenode 會將那個 datanode 上的數(shù)據(jù)拷貝到其他的節(jié)點去進(jìn)行存儲。6. (3 分 )文件大小默認(rèn)為 64M ,改為 128M 有什么影響?答:更改文件的 block 塊大小,需要根據(jù)我們的實際生產(chǎn)中來更改

16、 block 的大小,如果 block 定義的太小,大的文件都會被切分成太多的小文件,減慢用戶上傳效率,如果 block 定義的太大,那么太多的小文件可能都會存到一個 block 塊中,雖然不浪費(fèi)硬盤資源,可是還是會增加 namenode 的管理內(nèi)存壓力。7. (3 分 )NameNode 與 SecondaryNameNode 的區(qū)別與聯(lián)系?答:secondaryNameNode 更像是 Namenode 的一個冷備份, 當(dāng) namenode 宕機(jī)之后, 可以從 SecondaryNamenode 上面恢復(fù)部分?jǐn)?shù)據(jù)。8. (5 分 )在一個運(yùn)行的 hadoop 任務(wù)中,什么是 InputSp

17、lit ?答:InputSplit是 MapReduce對文件進(jìn)行處理和運(yùn)算的輸入單位,只是一個邏輯概念,每個 InputSplit并沒有對文件實際的切割,只是記錄了要處理的數(shù)據(jù)的位置(包括文件的和 hosts) 和長度 (由 start 和 length 決定 ),默認(rèn)情況下與block 一樣大。path9. (3 分 )參考下列 M/R 系統(tǒng)的場景: hdfs 塊大小為 64MB ,輸入類為 FileInputFormat ,有 3 個文件的大小分別為 64KB, 65MB, 127MB , Hadoop 框架會把這些文件拆分為多少塊?答:64k->一個 block65MB->

18、 兩個文件: 64MB 是一個 block , 1MB 是一個 block127MB-> 兩個文件: 64MB 是一個 block,63MB 是一個 block10. (5 分 )hadoop 中 RecordReader 的作用是什么?答:RecorderReader 是一個接口, 主要是用來讀取文件的輸入鍵值對的,輸入的 key,value 對的讀取規(guī)則。屬于split 和 mapper 之間的一個過程,將行為一個轉(zhuǎn)換記錄,成為key-value 的記錄形式提供給mapper我們也可以自定義inputsplit 輸出的11. (3 分 )Map 階段結(jié)束后, Hadoop 框架會處理

19、: Partitioning, Shuffle 和 Sort,在這幾個階段都發(fā)生了什么?答:Partition 是對輸出的 key,value 進(jìn)行分區(qū),可以自定義分區(qū),按照業(yè)務(wù)需求,將 map 的輸出歸分到多個不同的文件中將 map 的輸出作為輸入傳給 reducer 稱為 shufflesort 是排序的過程,將map 的輸出,作為reduce 的輸入之前,我們可以自定義排序,按照key 來對 map 的輸出進(jìn)行排序12.(5 分 )如果沒有定義partitioner,那數(shù)據(jù)在被送達(dá)reducer前是如何被分區(qū)的?答:Partitioner是在map 函數(shù)執(zhí)行context.write()

20、 時被調(diào)用。用戶可以通過實現(xiàn)自定義的Partitioner 來控制哪個key 被分配給哪個Reducer。hadoop 有一個默認(rèn)的分區(qū)類,HashPartioer 類,通過對輸入的k2 去 hash 值來確認(rèn)輸出的 k2, v2 送到哪一個reduce 中去執(zhí)行。map13. (3 分 )什么是 combiner ?答:combiner 就是規(guī)約操作,通過對map 輸出的數(shù)量進(jìn)行規(guī)約,可以減少reduce 的數(shù)量,提高執(zhí)行效率。combiner 的輸入輸出類型必須和mapper 的輸出以及reducer 的輸入類型一致14.(3 分 )分別舉例什么情況要使用combiner ,什么情況不使用

21、?答:求平均數(shù)的時候就不需要用combiner ,因為不會減少reduce 執(zhí)行數(shù)量。在其他的時候,可以依據(jù)情況,使用combiner ,來減少 map 的輸出數(shù)量,減少拷貝到reduce 的文件,從而減輕 reduce 的壓力,節(jié)省網(wǎng)絡(luò)開銷,提升執(zhí)行效率15. (5 分 )簡述 Hadoop 中 replication (復(fù)本)放置策略?答:Hadoop 的默認(rèn)布局策略是在運(yùn)行客戶端的節(jié)點上放第一個復(fù)本; 第二個復(fù)本放在與第一個不同且隨機(jī)另外選擇的機(jī)架中的節(jié)點上(離架) ;第三個復(fù)本與第二個復(fù)本放在同一個機(jī)架上,且隨機(jī)選擇另一個節(jié)點。16. (5 分 )如何為一個 hadoop 任務(wù)設(shè)置 m

22、appers 的數(shù)量?答:map 的數(shù)量通常是由hadoop 集群的 DFS塊大小確定的,也就是輸入文件的總塊數(shù),正常的 map 數(shù)量的并行規(guī)模大致是每一個Node 是 10100 個,對于 CPU消耗較小的作業(yè)可以設(shè)置 Map 數(shù)量為 300 個左右,但是由于hadoop 的沒一個任務(wù)在初始化時需要一定的時間,因此比較合理的情況是每個map 執(zhí)行的時間至少超過1 分鐘。具體的數(shù)據(jù)分片是這樣的,InputFormat 在默認(rèn)情況下會根據(jù)hadoop 集群的 DFS塊大小進(jìn)行分片,每一個分片會由一個 map 任務(wù)來進(jìn)行處理,當(dāng)然用戶還是可以通過參數(shù)mapred.min.split.size 參數(shù)

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論