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