0
A
回答
0
基於文檔,YARN旨在允許單個應用程序(通過ApplicationMaster)以共享,安全和多租戶方式利用集羣資源。此外,爲了有效調度和優化數據訪問,它仍然意識到集羣拓撲結構,即儘可能減少應用程序的數據移動。
爲了實現這些目標,中央調度程序(在ResourceManager中)有關於應用程序的資源需求的大量信息,這使得它能夠在集羣中的所有應用程序做出更好的調度決策。這導致我們到ResourceRequest和由此產生的容器。
本質上,應用程序可以通過ApplicationMaster請求特定資源請求以滿足其資源需求。調度程序通過授予容器來響應資源請求,該容器滿足ApplicationMaster在初始ResourceRequest中規定的要求。
正如你可能知道,我們有紗三種調度方法:
- 公平調度
- 容量調度
- FIFO調度
他們每個人都有自己的方法來計算應用資源需求。
例如,CapacityScheduler具有ResourceCalculator的概念 - 即通過觀察所有所識別的資源用於進行分配的數學一個可插入的層。這包括幫助做出以下決定的實用程序:
- 此節點是否有足夠的每種資源類型資源來滿足此請求?
- 我可以在這個節點上安裝多少個容器,對具有不同可用資源的節點列表進行排序。 YARN中有兩種計算器可用 - DefaultResourceCalculator和DominantResourceCalculator。
在執行計算時,DefaultResourceCalculator只考慮內存。這就是默認情況下在CapacityScheduler中執行分配時CPU要求被忽略的原因。所有的分配數學都減少到僅僅檢查資源請求所需的內存以及在特定調度週期內正在查看的節點上可用的內存。
相關問題
- 1. 如何將WPF資源分配給其他資源標籤
- 2. 如何將資源分配存儲到MySQL中的一個或多個作業
- 3. 是否可以將批處理作業提交給deezer API?
- 4. 如何只顯示Docker容器中分配的資源?
- 5. 如何將MapReduce作業從DataNode提交給JobTracker?
- 6. 如何將網頁資源分配給所有表單?
- 7. 資源經理ReentrantLocks
- 8. Moodle - 如果用戶已經提交了作業,如何隱藏作業描述
- 9. 配置的MapReduce作業提交
- 10. 如何提交@using(Html.BeginForm())並將其內容提交給控制器
- 11. 作業提交在星火作業服務器提供的NullPointerException
- 12. Minizinc - 將作業分配給特定機器
- 13. 分配給節點的作業數據分割如何?
- 14. 動態365-分配資源給任務
- 15. 使用配置文件提交作業
- 16. 如何將域名分配給碼頭中的容器
- 17. Rails3 - 如何爲嵌套資源提交提交按鈕
- 18. 將標籤分配給CloudFormation模板中的特定資源
- 19. 如何使用ResourceManager HA和Hortowork的HDP將MR作業提交給YARN羣集?
- 20. 尋找資源管理/分配系統
- 21. 在Bazaar資源管理器中,想要修改提交消息
- 22. VS 2017 - 團隊資源管理器提交 - 快捷方式
- 23. 資源管理器:如何獲取在給定的作業隊列中執行的應用ID列表
- 24. 如何在Weka的資源管理器中應用分類器?
- 25. CoreOS如何將內存分配給Docker容器?
- 26. 如何將多個類分配給HTML容器?
- 27. JavaFX如何將內容分配給子節點UI控制器
- 28. 如何從jar提交Dataflow作業?
- 29. 使用Python將多個作業提交給超級計算機
- 30. 將視頻源提交給itune
所以,你的意思是每個調度程序都有其優先級,有時CPU很重要或有時候是內存,? 任務完成後會發生什麼?容器還在嗎? – mndn
@mndn是的,但它們都很重要。容器是由CPU和內存組成的二維空間。優先級將由調度程序計算並傳遞給ResourceRequest。任務完成後,容器將被移除。 –
感謝您的幫助。我最後一個問題是調度程序如何估計資源的數量?他們是否使用歷史信息? – mndn