過程
(1)提交程序,申請stage,將資源提交到stage所在的hdfs上面
(2)程序資源提交完畢后,申請運(yùn)行mrAppMaster。
(3)RM將用戶的請求初始化成一個task。
?(4)該NodeManager創(chuàng)建容器Container,并產(chǎn)生MRAppmaster。Container從HDFS上拷貝資源到本地。
?(5)MRAppmaster向RM 申請運(yùn)行maptask資源。因?yàn)橛星衅募溃瑔佣嗌賯€maptask。
(6)MR向兩個接收到任務(wù)的NodeManager發(fā)送程序啟動腳本,這兩個NodeManager分別啟動maptask,maptask對數(shù)據(jù)分區(qū)排序。
(7)MrAppMaster等待所有maptask運(yùn)行完畢后,向RM申請容器,運(yùn)行reduce task。
調(diào)度策略:
FIFO、Capacity Scheduler和Fair Scheduler。
FIFO:一個隊(duì)列,先來先到
Capacity Scheduler:多個隊(duì)列,比較運(yùn)行的task與分得資源比值,比值越小越優(yōu)先。
同樣的任務(wù)數(shù)目分到的資源更多,趕快執(zhí)行完畢
Fair Scheduler:多用戶多隊(duì)列;優(yōu)先級分配資源,同一個隊(duì)列job缺額資源越大,越先執(zhí)行。
先讓得不到資源的先去執(zhí)行吧