優缺點
二、YARN核心組件及架構
1. ResourceManger(RM):全局資源管理器,集群中只有壹個活躍的RM,具體功能包括:處理客戶端的請求;啟動監控ApplicationMaster;監控NodeManger;資源的分配和調度。
2.ApplicationMaster(AM):每個應用程序(job任務)對應壹個AM,負責計算job的資源情況,並向RM申請和任務的調度。具體功能包括:(1)計算job資源使用情況,與RM協商申請job的資源情況;(2)與NodeManger通信啟動/停止Container,來執行/終止任務的具體執行;(3)監控任務的運行狀態及失敗處理。
3.NodeManager(NM):節點的資源管理器,每個節點啟動壹個,壹般與DataNode壹 壹對應。具體功能包括:(1)監控和管理當前節點的資源使用情況;(2)通過心跳向RM匯報自身的資源使用情況;(3)處理RM的請求,分配執行AM的Container;(4):處理AM的請求,啟動和停止執行任務的Container。
4.Container:資源的抽象,包括壹系列描述信息,任務的運行資源(節點、CPU、內存等),任務運行環境,啟動命令等。
架構圖見 yarn-arch
三、YARN運行流程
2. RM根據內部調度器,選取壹個資源空閑的NM,啟動壹個Container來運行AM。
3.AM計算應用程序所需資源,向RM進行資源申請,申請字段包括:
message?ResourceRequestProto?{?
optional?PriorityProtopriority?=?1;?//?資源優先級?
optional?stringresource_name?=?2;?//?期望資源所在的host?
optional?ResourceProtocapability?=?3;?//?資源量(mem、cpu)?
optional?int32num_containers?=?4;?//?滿足條件container個數?
optional?boolrelax_locality?=?5?;?//default?=?true;
}?
AM會根據文件的存儲地址,分析運行需要的資源等,向RM申請壹個期望的資源列表,RM同時考慮各個節點資源使用情況,最終分配壹個資源列表。
4. RM返回資源列表,以cotainer結構
message?ContainerProto?{?
optional?ContainerIdProtoid?=?1;?//container?id?
optional?NodeIdProtonodeId?=?2;?//container(資源)所在節點?
optional?stringnode_mon.TokenProtocontainer_token?=?6;?//container?token,用於安全認證?
}
5. AM與NM通信,分配Container並執行任務,以?ContainerLaunchContext 結構發出請求。同時監控各個節點的運行情況(定期心跳),如果失敗,AM可將該節點的任務調度到其他節點運行。
壹個NN可以啟動多個Container。
ContainerLaunchContext結構:
message?ContainerLaunchContextProto?{?
repeated?StringLocalResourceMapProtolocalResources?=?1;?//該Container運行的程序所需的在資源,例如:jar包?
optional?bytestokens?=?2;//Security模式下的SecurityTokens?
repeated?StringBytesMapProtoservice_data?=?3;?
repeated?StringStringMapProtoenvironment?=?4;?//Container啟動所需的環境變量?
repeated?stringcommand?=?5;?//該Container所運行程序的命令,比如運行的為java程序,即$JAVA_HOME/bin/java?org.ourclassrepeated?ApplicationACLMapProto?application_ACLs?=?6;//該Container所屬的Application的訪問控制列表?
}?
RM負責AM的啟動和監控,若異常可重新運行。
AM負責真個job任務的運行、監控,及失敗處理操作。
四、YARN的調度器
先進先出FIFO
Cap 容量調度器
Fire 公平調度器
周末快樂留言(1)
1,海闊天空,後有勇夫;喝多了送祝福;我想在周末見到妳。不知道妳想不想我,五天來壹直想著川味豬肉~
2.如果妳累了,我會給妳安慰;如果生活很累,有我真誠的陪伴;如果我快樂,我的快樂回饋就不會白費!周末快樂!
3.感謝您壹直以來對我們工作的支持。在這個周末,我希望妳能在繁忙的壹周後好好休息壹下。祝妳周末愉快,事業順利!