Hadoop面試題(四)——YARN


1、簡述hadoop1與hadoop2 的架構異同

1)加入了yarn解決了資源調度的問題。
2)加入了對zookeeper的支持實現比較可靠的高可用。

2、為什么會產生 yarn,它解決了什么問題,有什么優勢?

1)Yarn最主要的功能就是解決運行的用戶程序與yarn框架完全解耦。
2)Yarn上可以運行各種類型的分布式運算程序(mapreduce只是其中的一種),比如mapreduce、storm程序,spark程序……

3、HDFS的數據壓縮算法?(☆☆☆☆☆)

Hadoop中常用的壓縮算法有bzip2、gzip、lzo、snappy,其中lzo、snappy需要操作系統安裝native庫才可以支持。
數據可以壓縮的位置如下所示。

企業開發用的比較多的是snappy

4、Hadoop的調度器總結(☆☆☆☆☆)

(1)默認的調度器FIFO
Hadoop中默認的調度器,它先按照作業的優先級高低,再按照到達時間的先后選擇被執行的作業。
(2)計算能力調度器Capacity Scheduler
支持多個隊列,每個隊列可配置一定的資源量,每個隊列采用FIFO調度策略,為了防止同一個用戶的作業獨占隊列中的資源,該調度器會對同一用戶提交的作業所占資源量進行限定。調度時,首先按以下策略選擇一個合適隊列:計算每個隊列中正在運行的任務數與其應該分得的計算資源之間的比值,選擇一個該比值最小的隊列;然后按以下策略選擇該隊列中一個作業:按照作業優先級和提交時間順序選擇,同時考慮用戶資源量限制和內存限制。
(3)公平調度器Fair Scheduler
同計算能力調度器類似,支持多隊列多用戶,每個隊列中的資源量可以配置,同一隊列中的作業公平共享隊列中所有資源。實際上,Hadoop的調度器遠不止以上三種,最近,出現了很多針對新型應用的Hadoop調度器。

5、MapReduce 2.0 容錯性(☆☆☆☆☆)

1)MRAppMaster容錯性
一旦運行失敗,由YARN的ResourceManager負責重新啟動,最多重啟次數可由用戶設置,默認是2次。一旦超過最高重啟次數,則作業運行失敗。
2)Map Task/Reduce
Task Task周期性向MRAppMaster匯報心跳;一旦Task掛掉,則MRAppMaster將為之重新申請資源,並運行之。最多重新運行次數可由用戶設置,默認4次。

6、mapreduce推測執行算法及原理(☆☆☆☆☆)

1)作業完成時間取決於最慢的任務完成時間
一個作業由若干個Map 任務和Reduce 任務構成。因硬件老化、軟件Bug 等,某些任務可能運行非常慢。
典型案例:系統中有99%的Map任務都完成了,只有少數幾個Map老是進度很慢,完不成,怎么辦?
2)推測執行機制
發現拖后腿的任務,比如某個任務運行速度遠慢於任務平均速度。為拖后腿任務啟動一個備份任務,同時運行。誰先運行完,則采用誰的結果。
3)不能啟用推測執行機制情況
(1)任務間存在嚴重的負載傾斜;
(2)特殊任務,比如任務向數據庫中寫數據。
4)算法原理
假設某一時刻,任務T的執行進度為progress,則可通過一定的算法推測出該任務的最終完成時刻estimateEndTime。另一方面,如果此刻為該任務啟動一個備份任務,則可推斷出它可能的完成時刻estimateEndTime`,於是可得出以下幾個公式:

  estimatedRunTime=(currentTimestamp-taskStartTime)/progress  
  estimateEndTime`= currentTimestamp+averageRunTime  

其中,currentTimestamp為當前時刻;taskStartTime為該任務的啟動時刻;averageRunTime為已經成功運行完成的任務的平均運行時間。這樣,MRv2總是選擇(estimateEndTime- estimateEndTime·)差值最大的任務,並為之啟動備份任務。為了防止大量任務同時啟動備份任務造成的資源浪費,MRv2為每個作業設置了同時啟動的備份任務數目上限。
推測執行機制實際上采用了經典的算法優化方法:以空間換時間,它同時啟動多個相同任務處理相同的數據,並讓這些任務競爭以縮短數據處理時間。顯然,這種方法需要占用更多的計算資源。在集群資源緊缺的情況下,應合理使用該機制,爭取在多用少量資源的情況下,減少作業的計算時間。

YARN調度器(Scheduler)詳解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM