大数据学习——yarn
Yarn
Yarn 是hadoop2.0当中 的资源管理系统,为各类应用程序进行资源管理和调度。
我们可以看出.在hadoop2.0之后,在HDFS和MapReduce之间有了Yarn。就可以进行资源的管理,可以做更多的工作。
Yarn产生背景
mapreduce在批处理任务方面的效果较好,但是也只在批处理任务方面效果好了,
- 扩展性和可靠性差,JobTracker成为瓶颈,NameNode单点故障造成的。
- 扩展性差,难以支持mr之外的计算。
- 资源利用率低
mr的多计算框架数据共享困难,我们希望有实时计算框架(storm)和内存计算框架(spark)。
在这种背景下,我们产生了YARN。
YARN框架
Client:向整个集群发起任务,提交app请求。
ResourceManager:接受app请求。在master上。
看绿色和橙色的椭圆,在slave上做了一个app-master,该master管理指定的发送过来的的app任务,在结点当中开辟container(本身节点或其他节点),来计算该任务,使得资源利用率更高
Yarn框架
Yarn构成
- ResourceManager(master)
- NodeManager(slave)
- ApplicationMaster(slave)
- Container
Yarn总体上依然是Master/Slave结构
- ResourceManager为Master,NodeManager为Slave
- ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。
- 当用户提交一个应用请求的时候,需要提供一个用以跟踪和管理这个请求的ApplicationMaster,它负责向RescourceManager申请资源,并要求NodeManager启动可以占用一定资源的任务,不同的ApplicationManager会被分配到不同的节点上,即他们之间不会互相影响。
Yarn处理流程
- client向ResourceManager发送请求
- ResourceManager 指定一个NodeManager ,
- 该NodeManager开辟一个Container作为ApplicationMaster
- ApplicationMaster向ResoureceManager请求资源(自身节点或者其他节点上的资源)。
- ApplicationMaster利用资源,开始执行Task.