試想一下,你現(xiàn)在所在的公司有一個hadoop的集群。但是A項目組經常做一些定時的BI報表,B項目組則經常使用一些軟件做一些臨時需求。那么他們肯定會遇到同時提交任務的場景,這個時候到底如何分配資源滿足這兩個任務呢?是先執(zhí)行A的任務,再執(zhí)行B的任務,還是同時跑兩個?
如果你存在上述的困惑,可以多了解一些yarn的資源調度器。
在Yarn框架中,調度器是一塊很重要的內容。有了合適的調度規(guī)則,就可以保證多個應用可以在同一時間有條不紊的工作。最原始的調度規(guī)則就是FIFO,即按照用戶提交任務的時間來決定哪個任務先執(zhí)行,但是這樣很可能一個大任務獨占資源,其他的資源需要不斷的等待。也可能一堆小任務占用資源,大任務一直無法得到適當的資源,造成饑餓。所以FIFO雖然很簡單,但是并不能滿足我們的需求。
yarn默認還提供了兩種調度規(guī)則,capacity和fair share。本篇就主要介紹下capacity調度器: