> 你準備好面試了嗎?這裡有一些面試中可能會問到的問題以及相對應的答案。如果你需要更多的面試經驗和麵試題,關註一下"**張飛的豬大數據分享**"吧,公眾號會不定時的分享相關的知識和資料。 [TOC] ## 1、為什麼會產生 yarn,它解決了什麼問題,有什麼優勢? 1)Yarn最主要的功能就是解決運 ...
目錄你準備好面試了嗎?這裡有一些面試中可能會問到的問題以及相對應的答案。如果你需要更多的面試經驗和麵試題,關註一下"張飛的豬大數據分享"吧,公眾號會不定時的分享相關的知識和資料。
- 1、為什麼會產生 yarn,它解決了什麼問題,有什麼優勢?
- 2、簡述hadoop1與hadoop2 的架構異同
- 3、Hadoop的調度器總結
- 4、MapReduce 2.0 容錯性
- 5、HDFS的數據壓縮演算法?
- 6、mapreduce推測執行演算法及原理
- 7、更多大數據面試集錦
1、為什麼會產生 yarn,它解決了什麼問題,有什麼優勢?
1)Yarn最主要的功能就是解決運行的用戶程式與yarn框架完全解耦。
2)Yarn上可以運行各種類型的分散式運算程式(mapreduce只是其中的一種),比如mapreduce、storm程式,spark程式……
2、簡述hadoop1與hadoop2 的架構異同
1)加入了yarn解決了資源調度的問題。
2)加入了對zookeeper的支持實現比較可靠的高可用。
3、Hadoop的調度器總結
(1)預設的調度器FIFO
Hadoop中預設的調度器,它先按照作業的優先順序高低,再按照到達時間的先後選擇被執行的作業。
(2)計算能力調度器Capacity Scheduler
支持多個隊列,每個隊列可配置一定的資源量,每個隊列採用FIFO調度策略,為了防止同一個用戶的作業獨占隊列中的資源,該調度器會對同一用戶提交的作業所占資源量進行限定。調度時,首先按以下策略選擇一個合適隊列:計算每個隊列中正在運行的任務數與其應該分得的計算資源之間的比值,選擇一個該比值最小的隊列;然後按以下策略選擇該隊列中一個作業:按照作業優先順序和提交時間順序選擇,同時考慮用戶資源量限制和記憶體限制。
(3)公平調度器Fair Scheduler
同計算能力調度器類似,支持多隊列多用戶,每個隊列中的資源量可以配置,同一隊列中的作業公平共用隊列中所有資源。實際上,Hadoop的調度器遠不止以上三種,最近,出現了很多針對新型應用的Hadoop調度器。
4、MapReduce 2.0 容錯性
1)MRAppMaster容錯性
一旦運行失敗,由YARN的ResourceManager負責重新啟動,最多重啟次數可由用戶設置,預設是2次。一旦超過最高重啟次數,則作業運行失敗。
2)Map Task/Reduce
Task Task周期性向MRAppMaster彙報心跳;一旦Task掛掉,則MRAppMaster將為之重新申請資源,並運行之。最多重新運行次數可由用戶設置,預設4次。
5、HDFS的數據壓縮演算法?
Hadoop中常用的壓縮演算法有bzip2、gzip、lzo、snappy,其中lzo、snappy需要操作系統安裝native庫才可以支持。
數據可以壓縮的位置如下所示。
企業開發用的比較多的是snappy。
6、mapreduce推測執行演算法及原理
1)作業完成時間取決於最慢的任務完成時間
一個作業由若幹個Map 任務和Reduce 任務構成。因硬體老化、軟體Bug 等,某些任務可能運行非常慢。
典型案例:系統中有99%的Map任務都完成了,只有少數幾個Map老是進度很慢,完不成,怎麼辦?
2)推測執行機制
發現拖後腿的任務,比如某個任務運行速度遠慢於任務平均速度。為拖後腿任務啟動一個備份任務,同時運行。誰先運行完,則採用誰的結果。
3)不能啟用推測執行機制情況
(1)任務間存在嚴重的負載傾斜;
(2)特殊任務,比如任務向資料庫中寫數據。
4)演算法原理
假設某一時刻,任務T的執行進度為progress,則可通過一定的演算法推測出該任務的最終完成時刻estimateEndTime。另一方面,如果此刻為該任務啟動一個備份任務,則可推斷出它可能的完成時刻estimateEndTime,於是可得出以下幾個公式:
estimateEndTime=estimatedRunTime+taskStartTime
estimatedRunTime=(currentTimestamp-taskStartTime)/progress
estimateEndTime= currentTimestamp+averageRunTime
其中,currentTimestamp為當前時刻;taskStartTime為該任務的啟動時刻;averageRunTime為已經成功運行完成的任務的平均運行時間。這樣,MRv2總是選擇(estimateEndTime- estimateEndTime·)差值最大的任務,併為之啟動備份任務。為了防止大量任務同時啟動備份任務造成的資源浪費,MRv2為每個作業設置了同時啟動的備份任務數目上限。
推測執行機制實際上採用了經典的演算法優化方法:以空間換時間,它同時啟動多個相同任務處理相同的數據,並讓這些任務競爭以縮短數據處理時間。顯然,這種方法需要占用更多的計算資源。在集群資源緊缺的情況下,應合理使用該機制,爭取在多用少量資源的情況下,減少作業的計算時間。
7、更多大數據面試集錦
本文來自博客園,作者:張飛的豬,轉載請註明原文鏈接:https://www.cnblogs.com/the-pig-of-zf/p/17542453.html
公眾號:張飛的豬大數據分享,不定期分享大數據學習的總結和相關資料,歡迎關註。
個人網站"張飛的豬編程工作室"鏈接: https://zhangfeidezhu.com