大數據經典面試題答疑---經常問的原理問題總結(系列文章,持續更新),幫你解決大數據開發中的困擾。
1. yarn
答案區:
1. yarn
1.1 基礎
1.1.1.hadoop 1.x
JobTracker,TaskTracker
缺點:JobTracker負載過重,存在單點故障;與MapReduce強耦合,其他計算框架需要重復實現資源管理;
1.1.2.hadoop 2.x
App Mstr (Application Master進程)
1.1.3.工作流程
如架構圖所示,大致的工作流程如下:
1. 用戶使用客戶端向 RM 提交一個任務,同時指定提交到哪個隊列和需要多少資源。用戶可以通過每個計算引擎的對應參數設置,如果沒有特別指定,則使用默認設置。
2. RM 在收到任務提交的請求后,先根據資源和隊列是否滿足要求選擇一個 NM,通知它啟動一個特殊的 container,稱為 Application Master(App Mstr,AM),后續流程由它發起。
3. AM 向 RM 注冊后根據自己任務的需要,向 RM 申請 container,包括數量、所需資源量、所在位置等因素。
4. 如果隊列有足夠資源,RM 會將 container 分配給有足夠剩余資源的 NM,由 AM 通知 NM 啟動 container。
5. container 啟動后執行具體的任務,處理分給自己的數據。NM 除了負責啟動 container,還負責監控它的資源使用狀況以及是否失敗退出等工作,如果 container 實際使用的內存超過申請時指定的內存,會將其殺死,保證其他 container 能正常運行。
6. 各個 container 向 AM 匯報自己的進度,都完成后,AM 向 RM 注銷任務并退出,RM 通知 NM 殺死對應的 container,任務結束。
1.2. yarn有哪些調度
FIFO:單隊列 先進先出 小任務易阻塞
CAPACITY:多隊列 各隊列資源固定 小任務可同時運行,可彈性使用資源
每個隊列都可以設置最大值,不設置的話可用到整個父隊列的資源最大值(正好有空閑時);
FAIR:多隊列 各隊列資源***\*動態搶占\**** 小任務可同時運行
隊列創建時:除非隊列被準確的定義,否則會以用戶名為隊列名創建隊列
搶占就是允許調度器殺掉占用超過其應占份額資源隊列的containers,這些containers資源便可被分配到應該享有這些份額資源的隊列中。
默認調度器
Apache 開源:CAPACITY
CDH版本:FAIR
1.3. 常用命令
yarn logs -applicationId application_1539198654522_1073695 |more
1.查看 Job 信息:
hadoop job -list
2.殺掉 Job:
hadoop job –kill job_id
hadoop job –status job_id
更多關于大數據培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。