你準(zhǔn)備好面試了嗎?這里有一些面試中可能會問到的問題以及相對應(yīng)的答案。如果你需要更多的面試經(jīng)驗和面試題,關(guān)注一下"張飛的豬大數(shù)據(jù)分享"吧,公眾號會不定時的分享相關(guān)的知識和資料。
- 1、為什么會產(chǎn)生 yarn,它解決了什么問題,有什么優(yōu)勢?
- 2、簡述hadoop1與hadoop2 的架構(gòu)異同
- 3、Hadoop的調(diào)度器總結(jié)
- 4、MapReduce 2.0 容錯性
- 5、HDFS的數(shù)據(jù)壓縮算法?
- 6、mapreduce推測執(zhí)行算法及原理
- 7、更多大數(shù)據(jù)面試集錦
1、為什么會產(chǎn)生 yarn,它解決了什么問題,有什么優(yōu)勢?
1)Yarn最主要的功能就是解決運行的用戶程序與yarn框架完全解耦。
? 2)Yarn上可以運行各種類型的分布式運算程序(mapreduce只是其中的一種),比如mapreduce、storm程序,spark程序……
2、簡述hadoop1與hadoop2 的架構(gòu)異同
1)加入了yarn解決了資源調(diào)度的問題。
? 2)加入了對zookeeper的支持實現(xiàn)比較可靠的高可用。
3、Hadoop的調(diào)度器總結(jié)
(1)默認(rèn)的調(diào)度器FIFO
? Hadoop中默認(rèn)的調(diào)度器,它先按照作業(yè)的優(yōu)先級高低,再按照到達(dá)時間的先后選擇被執(zhí)行的作業(yè)。
(2)計算能力調(diào)度器Capacity Scheduler
? 支持多個隊列,每個隊列可配置一定的資源量,每個隊列采用FIFO調(diào)度策略,為了防止同一個用戶的作業(yè)獨占隊列中的資源,該調(diào)度器會對同一用戶提交的作業(yè)所占資源量進(jìn)行限定。調(diào)度時,首先按以下策略選擇一個合適隊列:計算每個隊列中正在運行的任務(wù)數(shù)與其應(yīng)該分得的計算資源之間的比值,選擇一個該比值最小的隊列;然后按以下策略選擇該隊列中一個作業(yè):按照作業(yè)優(yōu)先級和提交時間順序選擇,同時考慮用戶資源量限制和內(nèi)存限制。
(3)公平調(diào)度器Fair Scheduler
? 同計算能力調(diào)度器類似,支持多隊列多用戶,每個隊列中的資源量可以配置,同一隊列中的作業(yè)公平共享隊列中所有資源。實際上,Hadoop的調(diào)度器遠(yuǎn)不止以上三種,最近,出現(xiàn)了很多針對新型應(yīng)用的Hadoop調(diào)度器。
4、MapReduce 2.0 容錯性
1)MRAppMaster容錯性
? 一旦運行失敗,由YARN的ResourceManager負(fù)責(zé)重新啟動,最多重啟次數(shù)可由用戶設(shè)置,默認(rèn)是2次。一旦超過最高重啟次數(shù),則作業(yè)運行失敗。
2)Map Task/Reduce
? Task Task周期性向MRAppMaster匯報心跳;一旦Task掛掉,則MRAppMaster將為之重新申請資源,并運行之。最多重新運行次數(shù)可由用戶設(shè)置,默認(rèn)4次。
5、HDFS的數(shù)據(jù)壓縮算法?
Hadoop中常用的壓縮算法有bzip2、gzip、lzo、snappy,其中l(wèi)zo、snappy需要操作系統(tǒng)安裝native庫才可以支持。
? 數(shù)據(jù)可以壓縮的位置如下所示。
企業(yè)開發(fā)用的比較多的是snappy。
6、mapreduce推測執(zhí)行算法及原理
1)作業(yè)完成時間取決于最慢的任務(wù)完成時間
? 一個作業(yè)由若干個Map 任務(wù)和Reduce 任務(wù)構(gòu)成。因硬件老化、軟件Bug 等,某些任務(wù)可能運行非常慢。
? 典型案例:系統(tǒng)中有99%的Map任務(wù)都完成了,只有少數(shù)幾個Map老是進(jìn)度很慢,完不成,怎么辦?
2)推測執(zhí)行機(jī)制
? 發(fā)現(xiàn)拖后腿的任務(wù),比如某個任務(wù)運行速度遠(yuǎn)慢于任務(wù)平均速度。為拖后腿任務(wù)啟動一個備份任務(wù),同時運行。誰先運行完,則采用誰的結(jié)果。
3)不能啟用推測執(zhí)行機(jī)制情況
? (1)任務(wù)間存在嚴(yán)重的負(fù)載傾斜;
? (2)特殊任務(wù),比如任務(wù)向數(shù)據(jù)庫中寫數(shù)據(jù)。
4)算法原理
? 假設(shè)某一時刻,任務(wù)T的執(zhí)行進(jìn)度為progress,則可通過一定的算法推測出該任務(wù)的最終完成時刻estimateEndTime。另一方面,如果此刻為該任務(wù)啟動一個備份任務(wù),則可推斷出它可能的完成時刻estimateEndTime,于是可得出以下幾個公式:
?
estimateEndTime=estimatedRunTime+taskStartTime
estimatedRunTime=(currentTimestamp-taskStartTime)/progress
estimateEndTime= currentTimestamp+averageRunTime文章來源:http://www.zghlxwxcb.cn/news/detail-542388.html
其中,currentTimestamp為當(dāng)前時刻;taskStartTime為該任務(wù)的啟動時刻;averageRunTime為已經(jīng)成功運行完成的任務(wù)的平均運行時間。這樣,MRv2總是選擇(estimateEndTime- estimateEndTime·)差值最大的任務(wù),并為之啟動備份任務(wù)。為了防止大量任務(wù)同時啟動備份任務(wù)造成的資源浪費,MRv2為每個作業(yè)設(shè)置了同時啟動的備份任務(wù)數(shù)目上限。
? 推測執(zhí)行機(jī)制實際上采用了經(jīng)典的算法優(yōu)化方法:以空間換時間,它同時啟動多個相同任務(wù)處理相同的數(shù)據(jù),并讓這些任務(wù)競爭以縮短數(shù)據(jù)處理時間。顯然,這種方法需要占用更多的計算資源。在集群資源緊缺的情況下,應(yīng)合理使用該機(jī)制,爭取在多用少量資源的情況下,減少作業(yè)的計算時間。文章來源地址http://www.zghlxwxcb.cn/news/detail-542388.html
7、更多大數(shù)據(jù)面試集錦
- 大數(shù)據(jù)書籍資料分享
- 大數(shù)據(jù)面試題集錦
到了這里,關(guān)于大數(shù)據(jù)面試題集錦-Hadoop面試題(四)-YARN的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!