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