2023年hadoop常見筆試題答案_第1頁
2023年hadoop常見筆試題答案_第2頁
2023年hadoop常見筆試題答案_第3頁
2023年hadoop常見筆試題答案_第4頁
2023年hadoop常見筆試題答案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Hadoop測試題一.填空題,1分(41空),2分(42空)共125分(每空1分)datanode負(fù)責(zé)HDFS數(shù)據(jù)存儲。(每空1分)HDFS中的block默認(rèn)保存3份。(每空1分)ResourceManager程序通常與NameNode在一個節(jié)點(diǎn)啟動。(每空1分)hadoop運(yùn)營的模式有:單機(jī)模式、偽分布模式、完全分布式。(每空1分)Hadoop集群搭建中常用的4個配置文獻(xiàn)為:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。(每空2分)HDFS將要存儲的大文獻(xiàn)進(jìn)行分割,分割后存放在既定的存儲塊中,并通過預(yù)先設(shè)定的優(yōu)化解決,模式對存儲的數(shù)據(jù)進(jìn)行預(yù)解決,從而解決了大文獻(xiàn)儲存與計(jì)算的需求。(每空2分)一個HDFS集群涉及兩大部分,即namenode與datanode。一般來說,一個集群中會有一個namenode和多個datanode共同工作。(每空2分)namenode是集群的主服務(wù)器,重要是用于對HDFS中所有的文獻(xiàn)及內(nèi)容數(shù)據(jù)進(jìn)行維護(hù),并不斷讀取記錄集群中datanode主機(jī)情況與工作狀態(tài),并通過讀取與寫入鏡像日記文獻(xiàn)的方式進(jìn)行存儲。(每空2分)datanode在HDFS集群中擔(dān)任任務(wù)具體執(zhí)行角色,是集群的工作節(jié)點(diǎn)。文獻(xiàn)被提成若干個相同大小的數(shù)據(jù)塊,分別存儲在若干個datanode上,datanode會定期向集群內(nèi)namenode發(fā)送自己的運(yùn)營狀態(tài)與存儲內(nèi)容,并根據(jù)namnode發(fā)送的指令進(jìn)行工作。(每空2分)namenode負(fù)責(zé)接受客戶端發(fā)送過來的信息,然后將文獻(xiàn)存儲位置信息發(fā)送給client,由client直接與datanode進(jìn)行聯(lián)系,從而進(jìn)行部分文獻(xiàn)的運(yùn)算與操作。(每空1分)block是HDFS的基本存儲單元,默認(rèn)大小是128M。(每空1分)HDFS還可以對已經(jīng)存儲的Block進(jìn)行多副本備份,將每個Block至少復(fù)制到3個互相獨(dú)立的硬件上,這樣可以快速恢復(fù)損壞的數(shù)據(jù)。(每空2分)當(dāng)客戶端的讀取操作發(fā)生錯誤的時候,客戶端會向namenode報告錯誤,并請求namenode排除錯誤的datanode后,重新根據(jù)距離排序,從而獲得一個新的的讀取途徑。假如所有的datanode都報告讀取失敗,那么整個任務(wù)就讀取失敗。(每空2分)對于寫出操作過程中出現(xiàn)的問題,F(xiàn)SDataOutputStream并不會立即關(guān)閉??蛻舳讼騈amenode報告錯誤信息,并直接向提供備份的datanode中寫入數(shù)據(jù)。備份datanode被升級為首選datanode,并在其余2個datanode中備份復(fù)制數(shù)據(jù)。NameNode對錯誤的DataNode進(jìn)行標(biāo)記以便后續(xù)對其進(jìn)行解決。(每空1分)格式化HDFS系統(tǒng)的命令為:hdfsnamenode–format。(每空1分)啟動hdfs的shell腳本為:start-dfs.sh。(每空1分)啟動yarn的shell腳本為:start-yarn.sh。(每空1分)停止hdfs的shell腳本為:stop-dfs.sh。(每空1分)hadoop創(chuàng)建多級目錄(如:/a/b/c)的命令為:hadoopfs–mkdir–p/a/b/c。(每空1分)hadoop顯示根目錄命令為:hadoopfs–lsr。(每空1分)hadoop包含的四大模塊分別是:Hadoopcommon、HDFS、Mapreduce、yarn。(每空1分)namenode默認(rèn)的WebUI訪問端標(biāo)語為:50070。(每空1分)ResourceManager默認(rèn)的WebUI訪問端標(biāo)語為:8088。(每空1分)historyServer默認(rèn)的WebUI訪問端標(biāo)語為:19888。(每空1分)修改blocksize大小的屬性是:dfs.blocksize,在hdfs-site.xml配置文獻(xiàn)里。(每空1分)HDFS中namenode的RPC端標(biāo)語為:8021,其作用是:接受Client連接的RPC端口,用于獲取文獻(xiàn)系統(tǒng)metadata信息。(每空2分)Mapper類中有4個函數(shù)。(每空1分)默認(rèn)NameNode周期性從DataNode接受心跳信號的時間間隔為:3s。(每空1分)hadoop集群默認(rèn)機(jī)架感知是啟用的。是否對的:錯誤。(每空2分)HadoopMap/ReduceShuffle過程:inputsplit-->map函數(shù)—>內(nèi)存緩沖區(qū)Partitionsortcombinespill-->map端merge-->reduce端copy—>mergereduce函數(shù)。(每空2分)一個NodeManager可以同時運(yùn)營最大reduce任務(wù)數(shù)(默認(rèn)):2。(每空2分)默認(rèn)情況下,一個同時運(yùn)營了namenode,secondarynamenode和ResourceManager的主節(jié)點(diǎn),所使用的內(nèi)存容量為3000M。(每空2分)Hadoop集群中有三種作業(yè)調(diào)度HYPERLINK""\o"算法與數(shù)據(jù)結(jié)構(gòu)知識庫"\t"_blank"算法,分別為FIFO調(diào)度,計(jì)算能力調(diào)度和公平調(diào)度。(每空1分)HA產(chǎn)生的背景是:為了解決單NN也許出現(xiàn)宕機(jī)導(dǎo)致集群不可用或數(shù)據(jù)丟失的問題。(每空1分)通過Zookeeper管理兩個或者多個NameNode,使一個NameNode為active狀態(tài),并且同步每個NN的元數(shù)據(jù),假如active狀態(tài)的NN宕機(jī)后立即啟用狀態(tài)為standby狀態(tài)的備用節(jié)點(diǎn)。(每空1分)job是客戶端需要執(zhí)行的一個工作單元。(每空1分)Hadoop將作業(yè)提成若干個task來執(zhí)行,其中涉及:maptask和reducetask。(每空2分)combiner是通過Reducer類來定義的。(每空2分)map任務(wù)將其輸出寫入到本地磁盤。(每空2分)reduce的輸出通常存儲在HDFS中以實(shí)現(xiàn)可靠存儲。(每空2分)HDFS會對寫入的所有數(shù)據(jù)計(jì)算校驗(yàn)和,并在讀取數(shù)據(jù)時驗(yàn)證校驗(yàn)和。(每空2分)序列化用于分布式數(shù)據(jù)解決的兩大領(lǐng)域?yàn)椋哼M(jìn)程間通信和永久存儲。(每空2分)hadoop使用自己的序列化格式為:Writable。二.簡答題,3分(17題),5分(5題)共75分(3分)簡要描述如何安裝配置apache的一個開源hadoop,只描述即可,無需列出具體環(huán)節(jié),列出具體環(huán)節(jié)更好。答:1使用root賬戶登錄2修改IP3修改host主機(jī)名4配置SSH免密碼登錄5關(guān)閉防火墻6安裝JDK7解壓hadoop安裝包8配置hadoop的核心文獻(xiàn)hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml9配置hadoop環(huán)境變量10格式化hadoopnamenode-format(yī)11啟動節(jié)點(diǎn)start-all.sh(3分)請列出正常的hadoop集群中hadoop都分別需要啟動哪些進(jìn)程,他們的作用分別都是什么,請盡量列的具體一些。答:namenode:管理集群,存儲數(shù)據(jù)的原信息,并管理記錄datanode中的文獻(xiàn)信息。secondarynamenode:它是namenode的一個快照,會根據(jù)configurat(yī)ion中設(shè)立的值來?

決定多少時間周期性的去cp一下namenode,記錄namenode中的metadata及其它數(shù)據(jù)。Datanode:存儲數(shù)據(jù)ResourceManager:ResourceManager負(fù)責(zé)集群中所有資源的統(tǒng)一管理和分派,它接受來自各個節(jié)點(diǎn)(NodeManager)的資源報告信息,并把這些信息按照一定的策略分派給各個應(yīng)用程序(事實(shí)上是ApplicationManager)NodeManager:是YARN中每個節(jié)點(diǎn)上的代理,它管理HYPERLINK""\o"Hadoop知識庫"\t"_blank"Hadoop集群中單個計(jì)算節(jié)點(diǎn)??(3分)請寫出以下的shell命令?(1)殺死一個job(2)刪除hdfs上的/tmp/aaa目錄(3)加入一個新的存儲節(jié)點(diǎn)和刪除一個節(jié)點(diǎn)需要執(zhí)行的命令答:(1)mapredjob-list得到j(luò)ob的id,然后執(zhí)行mapredjob–killjobId就可以殺死一個指定jobId的job工作了。(2)hadoopfs-rmr/tmp/aaa或者h(yuǎn)dfsdfs–rmr/tmp/aaa(3)增長一個新的節(jié)點(diǎn)在新的節(jié)點(diǎn)上執(zhí)行? hadoop-daemon.shstartdatanode 然后在主節(jié)點(diǎn)中執(zhí)行hdfsdfsadmin-refreshNodes?刪除一個節(jié)點(diǎn)的時候,只需要在主節(jié)點(diǎn)執(zhí)行hdfsdfsadmin–refreshnodes(3分)請簡述mapreduce中的combine和partition的作用答:combiner是發(fā)生在map的最后一個階段,其原理也是一個小型的reducer,重要作用是減少輸出到reduce的個數(shù),減少reducer的輸入,提高reducer的執(zhí)行效率。Partition的重要作用就是指定輸出到reduce的個數(shù)的。(3分)hdfs的體系結(jié)構(gòu)答:HDFS采用了主從(Master/Slave)結(jié)構(gòu)模型,一個HDFS集群是由一個NameNode和若干個DataNode組成的。其中NameNode作為主服務(wù)器,管理文獻(xiàn)系統(tǒng)的命名空間和客戶端對文獻(xiàn)的訪問操作;集群中的DataNode管理存儲的數(shù)據(jù)(3分)三個datanode中當(dāng)有一個datanode出現(xiàn)錯誤時會如何?答:當(dāng)有一個datanode出現(xiàn)錯誤的時候,namenode會將那個datanode上的數(shù)據(jù)拷貝到其他的節(jié)點(diǎn)去進(jìn)行存儲。(3分)文獻(xiàn)大小默認(rèn)為64M,改為128M有什么影響?答:更改文獻(xiàn)的block塊大小,需要根據(jù)我們的實(shí)際生產(chǎn)中來更改block的大小,假如block定義的太小,大的文獻(xiàn)都會被切提成太多的小文獻(xiàn),減慢用戶上傳效率,假如block定義的太大,那么太多的小文獻(xiàn)也許都會存到一個block塊中,雖然不浪費(fèi)硬盤資源,可是還是會增長namenode的管理內(nèi)存壓力。(3分)NameNode與SecondaryNameNode的區(qū)別與聯(lián)系?答:secondaryNameNode更像是Namenode的一個冷備份,當(dāng)namenode宕機(jī)之后,可以從SecondaryNamenode上面恢復(fù)部分?jǐn)?shù)據(jù)。(5分)在一個運(yùn)營的hadoop任務(wù)中,什么是InputSplit?答:InputSplit是MapReduce對文獻(xiàn)進(jìn)行解決和運(yùn)算的輸入單位,只是一個邏輯概念,每個InputSplit并沒有對文獻(xiàn)實(shí)際的切割,只是記錄了要解決的數(shù)據(jù)的位置(涉及文獻(xiàn)的pat(yī)h和hosts)和長度(由start和length決定),默認(rèn)情況下與block同樣大。(3分)參考下列M/R系統(tǒng)的場景:hdfs塊大小為64MB,輸入類為FileInputFormat,有3個文獻(xiàn)的大小分別為64KB,65MB,127MB,Hadoop框架會把這些文獻(xiàn)拆分為多少塊?答:64k------->一個block65MB---->兩個文獻(xiàn):64MB是一個block,1MB是一個block127MB--->兩個文獻(xiàn):64MB是一個block,63MB是一個block(5分)hadoop中RecordReader的作用是什么?答:RecorderReader是一個接口,重要是用來讀取文獻(xiàn)的輸入鍵值對的,我們也可以自定義輸入的key,value對的讀取規(guī)則。屬于split和mapper之間的一個過程,將inputsplit輸出的行為一個轉(zhuǎn)換記錄,成為key-value的記錄形式提供應(yīng)mapper(3分)Map階段結(jié)束后,Hadoop框架會解決:Partitioning,Shuffle和Sort,在這幾個階段都發(fā)生了什么?答:Partition是對輸出的key,value進(jìn)行分區(qū),可以自定義分區(qū),按照業(yè)務(wù)需求,將map的輸出歸分到多個不同的文獻(xiàn)中 將map的輸出作為輸入傳給reducer稱為shuffle?sort是排序的過程,將map的輸出,作為reduce的輸入之前,我們可以自定義排序,按照key來對map的輸出進(jìn)行排序(5分)假如沒有定義partitioner,那數(shù)據(jù)在被送達(dá)reducer前是如何被分區(qū)的?答:Partitioner是在map函數(shù)執(zhí)行context.write()時被調(diào)用。用戶可以通過實(shí)現(xiàn)自定義的Partitioner來控制哪個key被分派給哪個Reducer。hadoop有一個默認(rèn)的分區(qū)類,HashPartioer類,通過對輸入的k2去hash值來確認(rèn)map輸出的k2,v2送到哪一個reduce中去執(zhí)行。(3分)什么是combiner?答:combiner就是規(guī)約操作,通過對map輸出的數(shù)量進(jìn)行規(guī)約,可以減少reduce的數(shù)量,提高執(zhí)行效率。combiner的輸入輸出類型必須和mapper的輸出以及reducer的輸入類型一致(3分)分別舉例什么情況要使用combiner,什么情況不使用?答:求平均數(shù)的時候就不需要用combiner,由于不會減少reduce執(zhí)行數(shù)量。在其他的時候,可以依據(jù)情況,使用combiner,來減少map的輸出數(shù)量,減少拷貝到reduce的文獻(xiàn),從而減輕reduce的壓力,節(jié)省網(wǎng)絡(luò)開銷,提高執(zhí)行效率(5分)簡述Hadoop中replication(復(fù)本)放置策略?答:Hadoop的默認(rèn)布局策略是在運(yùn)營客戶端的節(jié)點(diǎn)上放第一個復(fù)本;第二個復(fù)本放在與第一個不同且隨機(jī)此外選擇的機(jī)架中的節(jié)點(diǎn)上(離架);第三個復(fù)本與第二個復(fù)本放在同一個機(jī)架上,且隨機(jī)選擇另一個節(jié)點(diǎn)。(5分)如何為一個hadoop任務(wù)設(shè)立mappers的數(shù)量?答:map的數(shù)量通常是由hadoop集群的DFS塊大小擬定的,也就是輸入文獻(xiàn)的總塊數(shù),正常的map數(shù)量的并行規(guī)模大體是每一個Node是10~100個,對于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ù)在作業(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(intnum)方法來手動地設(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)值,從而提高整體had

溫馨提示

  • 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

提交評論