大數(shù)據(jù)開發(fā)筆試_第1頁
大數(shù)據(jù)開發(fā)筆試_第2頁
大數(shù)據(jù)開發(fā)筆試_第3頁
大數(shù)據(jù)開發(fā)筆試_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、 hdfs原理,以及各個模塊的職責(zé)答:HadoopDistributedFileSystem即:Hadoop分布式文件系統(tǒng),就是把數(shù)據(jù)劃分成不同的Block分別存儲在不同節(jié)點的設(shè)備上。它分為兩個部分:NameNode和DateNode,NameNode相當(dāng)于一個領(lǐng)導(dǎo),將文件系統(tǒng)的Meta-data存儲在內(nèi)存中,這些信息主要包括了文件信息、每一個文件對應(yīng)的文件塊的信息和每一個文件塊在DataNode的信息等。它管理集群內(nèi)的DataNode,當(dāng)客戶發(fā)送請求過來后,NameNode會根據(jù)Meta-data指定存儲到哪些DataNode上,而其本身并不存儲真實的數(shù)據(jù)。2、 mr的工作原理答:當(dāng)客戶提交作業(yè)后,MapReduce庫先把任務(wù)splits不同的塊,然后根據(jù)“移動計算比移動數(shù)據(jù)更明智”勺思想,把任務(wù)分發(fā)到各個DataNode上。在不同的DataNode上分別執(zhí)行Map操作,產(chǎn)生鍵值對,然后通過shuffle重新洗牌,把鍵值相同的鍵值對傳給同一個reduce,把鍵值不同的鍵值對傳給不同的reduce進行處理,最后輸出結(jié)果。這些按照時間順序包括:輸入分片(inputsplit)、map階段、combiner階段、shuffle階段和reduce階段。(5個階段)5plttingMappingFinalresuhBearCarCaiRiwr

DeerCarEtear■CarCa1RwrShufflingReducingBear?5plttingMappingFinalresuhBearCarCaiRiwr

DeerCarEtear■CarCa1RwrShufflingReducingBear?Car.3Dtei.2River.2Car,1Gar,iRver,13、 map方法是如何調(diào)用reduce方法的答:Shuffle過程是MapReduce的核心,也被稱為奇跡發(fā)生的地方,Hadoop的shuffle過程就是從map端輸出到reduce端輸入之間的過程。map過程的輸出是寫入本地磁盤而不是HDFS,但是一開始數(shù)據(jù)并不是直接寫入磁盤而是緩沖在內(nèi)存中,緩存的好處就是減少磁盤I/O的開銷,提高合并和排序的速度。默認(rèn)的內(nèi)存緩沖大小是100M(可以配置),所以在書寫map函數(shù)的時候要盡量減少內(nèi)存的使用,為shuffle過程預(yù)留更多的內(nèi)存,因為該過程是最耗時的過程。當(dāng)緩沖的內(nèi)存大小使用超過一定的閾值(默認(rèn)80%),一個后臺的線程就會啟動把緩沖區(qū)中的數(shù)據(jù)寫入(spill)到磁盤中,往內(nèi)存中寫入的線程繼續(xù)寫入知道緩沖區(qū)滿,緩沖區(qū)滿后線程阻塞直至緩沖區(qū)被清空。在數(shù)據(jù)spill到磁盤的過程中會有一些額外的處理,調(diào)用partition函數(shù)、combine函數(shù)(如果設(shè)置)、對數(shù)據(jù)進行排序(按key排序)。如果發(fā)生多次磁盤的溢出寫,會在磁盤上形成幾個溢出寫文件,在map過程結(jié)束時,要將這些文件進行合并生成一個大的分區(qū)的排序的文件。reduce端可能從n多map的結(jié)果中獲取數(shù)據(jù),而這些map的執(zhí)行速度不盡相同,當(dāng)其中一個map運行結(jié)束時,reduce就會從jobtractor中獲取該信息。map運行結(jié)束后tasktractor會得到消息,進而將消息匯報給jobtractor,reduce定時從jobtractor獲取該信息,reduce端默認(rèn)有5個線程從map端拖拉數(shù)據(jù)。4、 shell如何判斷文件是否存在,如果不存在該如何處理?if[!-f"$file"];thentouch"$file"fi不存在就創(chuàng)建一個吧。5、fsimage和edit的區(qū)別?答:fsimage保存了最新的元數(shù)據(jù)檢查點,edits保存自最新檢查點后的命名空間的變化。從最新檢查點后,hadoop將對每個文件的操作都保存在edits中,為避免edits不斷增大,secondarynamenode就會周期性合并fsimage和edits成新的fsimage,edits再記錄新的變化,這種機制有個問題:因edits存放在Namenode中,當(dāng)Namenode掛掉,edits也會丟失,導(dǎo)致利用secondarynamenode恢復(fù)Namenode時,會有部分?jǐn)?shù)據(jù)丟失。6、hadoop1和hadoop2的區(qū)別?答:Hadoop2相比較于Hadoopl.x來說,HDFS的架構(gòu)與MapReduce的都有較大的變化,且速度上和可用性上都有了很大的提高,Hadoop2中有兩個重要的變更:首先HDFS的NameNodes可以以集群的方式布署,增強了NameNodes的水平擴展能力和可用性,可以同時部署多個NameNode,這些NameNodes之間是相互獨立,也就是說他們不需要相互協(xié)調(diào),DataNode同時在所有NameNodes注冊,做為他們共有的存儲節(jié)點,并定時向所有的這些NameNodes發(fā)送心跳塊使用情況的報告,并處理所有NameNodes向其發(fā)送的指令。再者MapReduce將JobTracker中的資源管理及任務(wù)生命周期管理(包括定時觸發(fā)及監(jiān)控),拆分成兩個獨立的組件,并更名為YARN(YetAnotherResourceNegotiator)。MapReduce在Hadoop2中稱為MR2或YARN,將JobTracker中的資源管理及任務(wù)生命周期管理(包括定時觸發(fā)及監(jiān)控),拆分成兩個獨立的服務(wù),用于管理全部資源的ResourceManager以及管理每個應(yīng)用的ApplicationMaster,ResourceManager用于管理向應(yīng)用程序分配計算資源,每個ApplicationMaster用于管理應(yīng)用程序、調(diào)度以及協(xié)調(diào)。筆試:1、 hdfs中的block默認(rèn)保存幾份?答:默認(rèn)3份,可以確保塊、磁盤和機器發(fā)生故障后數(shù)據(jù)不丟失。機架不同的機器上和不同的機架上。2、哪個程序通常與nn在一個節(jié)點啟動?并做分析答:jobtracker和namenode通常在一個節(jié)點上啟動。用戶代碼提交到集群以后,由JobTracker決定哪個文件將被處理,并且為不同的task分配節(jié)點。而文件存儲信息的管理者是nameNode,所以jobtracker一般要和nn在同一個節(jié)點啟動。(同時,它還監(jiān)控所有的task,一旦某個task失敗了,JobTracker就會自動重新開啟這個task,在大多數(shù)情況下這個task會被放在不用的節(jié)點上。每個Hadoop集群只有一個JobTracker,一般運行在集群的Master節(jié)點上)3、 列舉幾個配置文件優(yōu)化?1) hadoop.tmp.dir默認(rèn)值:/tmp說明:盡量手動配置這個選項,否則的話都默認(rèn)存在了里系統(tǒng)的默認(rèn)臨時文件/tmp里。并且手動配置的時候,如果服務(wù)器是多磁盤的,每個磁盤都設(shè)置一個臨時文件目錄,這樣便于mapreduce或者h(yuǎn)dfs等使用的時候提高磁盤10效率。2) fs.inmemory.size.mb默認(rèn)值:說明:reduce階段用戶合并map輸出的內(nèi)存限制。這里設(shè)置200,可根據(jù)自身硬件設(shè)備進行更改測試。3) dfs.blocksize默認(rèn)值:67108864說明:這個就是hdfs里一個文件塊的大小了,默認(rèn)64M,這里設(shè)置134217728,即128M,太大的話會有較少map同時計算,太小的話也浪費可用map個數(shù)資源,而且文件太小namenode就浪費內(nèi)存多。根據(jù)需要進行設(shè)置。(4)Mapreduce.jobtracker.handler.count默認(rèn)值:10說明:JobTracker可以啟動的線程數(shù),一般為tasktracker節(jié)點的4%。4、 寫出你對zookeeper的理解ZooKeeper提供了一個簡化并支持特定功能的分布式文件系統(tǒng)接口,加上數(shù)據(jù)同步,變更通知,客戶端Cache等輔助機制。實際上zookeeper是很適合做集群節(jié)點都具有相同配置文件或相同配置信息的管理同步工具,可以設(shè)置權(quán)限及觸發(fā)功能。比如集群中每一個加點安裝部署 zookeeper,構(gòu)成zookeeper集群,配置好相應(yīng)的watcher及觸發(fā)運行腳本,在集群中任何一臺的節(jié)點上修改配置文件,都會觸發(fā)watcher,然后執(zhí)行相應(yīng)的配置信息同步腳本,更新所有其他節(jié)點上得配置信息,實現(xiàn)了配置的統(tǒng)一管理。集群的配置(文件)管理(配置修改之后,zookeeper監(jiān)控到自動更新同步到其他客戶端,實現(xiàn)配置的統(tǒng)一管理)。5、 datanode首次加入cluster的時候,如果log報告不兼容文件版本,那需要namenode執(zhí)行格式化操作,這樣處理的原因是?添加了一個新的標(biāo)識符ClusterID用于標(biāo)識集群中所有的節(jié)點。當(dāng)格式化一個Namenode,需要提供這個標(biāo)識符或者自動生成。這個ID可以被用來格式化加入集群的其他Namenode。6、 談?wù)剶?shù)據(jù)傾斜,如何發(fā)生的,并給出優(yōu)化方案主要原因:1)、key分布不均勻;2)、業(yè)務(wù)數(shù)據(jù)本身的特性;3)、建表時考慮不周;4)、某些SQL語句本身就有數(shù)據(jù)傾斜。優(yōu)化方案:1)、參數(shù)調(diào)節(jié):hive.map.aggr=true;2)、SQL語句調(diào)節(jié)。7、 介紹一下hbase過濾器HBase為篩選數(shù)據(jù)提供了一組過濾器,通過這個過濾器可以在HBase中的數(shù)據(jù)的多個維度(行,列,數(shù)據(jù)版本)上進行對數(shù)據(jù)的篩選操作,也就是說過濾器最終能夠篩選的數(shù)據(jù)能夠細(xì)化到具體的一個存儲單元格上(由行鍵,列名,時間戳定位)。RowFilter、PrefixFilter。。。8、 mapreduce基本執(zhí)行過程首先對輸入數(shù)據(jù)源進行切片master調(diào)度worker執(zhí)行map任務(wù)worker讀取輸入源片段worker執(zhí)行map任務(wù),將任務(wù)輸出保存在本地master調(diào)度worker執(zhí)行reduce任務(wù),reduceworker讀取map任務(wù)的輸出文件執(zhí)行reduce任務(wù),將任務(wù)輸出保存到HDFS9、 談?wù)刪adoop1和hadoop2的區(qū)別10、 hbase集群安裝注意事項11、 記錄包含值域F和值域G,要分別統(tǒng)計相同G值的記錄中不同的F值的數(shù)目,簡單編寫過程。信息技術(shù)有限公司1、 你們的集群規(guī)模?2、 你們的數(shù)據(jù)是用什么導(dǎo)入到數(shù)據(jù)庫的?導(dǎo)入到什么數(shù)據(jù)庫?3、你們業(yè)務(wù)數(shù)據(jù)量多大?有多少行數(shù)據(jù)?(面試了三家,都問這個問題)4、你們處理數(shù)據(jù)是

溫馨提示

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

評論

0/150

提交評論