Overview
Container 是Hadoop中運行任務的地方,當Resourcemanager收到一任務請求后,會向nodemanager 請求一個Container 來運行ApplicationMaster, ApplicationMaster運行起來之后,會繼續向Resourcemanager請求新的container來運行任務, 當container 完成任務之后,ApplicationMaster會釋放相應的container, 當任務完成之后,ApplicationMaster會釋放自己 運行的Container;
StartContainerRequest handle
圖 2-1
圖 2-2
ContainerManager 收到StartContainer Request 之后 ,先進行運行時環境檢查,如果一切都沒有問題,則會在本建立一個container 和 一個Application FSM, 并啟動Applicateion FSM,
Start Applicationdispatcher.getEventHandler().handle(new ApplicationInitEvent(applicationID, container.getLaunchContext().getApplicationACLs()));
StopContainerRequest Handle
該 request的處理過程與Start類似,僅向container發送killevent, 后續處理由containerFSM 完成,container 成功停止之后,會重新更新當前node的狀態 信息:nodeStatusUPdater.sendOutOfBandHeartBeat();