ApplicationMaster是一个框架特殊的库对于Map-Reduce计算模型而言有它自己的ApplicationMaster实现,对于其他的想要运行在yarn是什么上的计算模型而言必须得实现针对该计算模型的ApplicationMaster用以向RM申请资源运行task,比如运荇在yarn是什么上的spark框架也有对应的ApplicationMaster实现归根结底,yarn是什么是一个资源管理的框架并不是一个计算框架,要想在yarn是什么上运行应用程序還得有特定的计算框架的实现。由于yarn是什么是伴随着MRv2一起出现的所以下面简要概述MRv2在yarn是什么上的运行流程。
我们知道在MRv1中,JobTracker存在诸多問题包括存在单点故障,扩展受限等为了解决这些问题,Apache对MRv1进行了改进提出了yarn是什么,yarn是什么将JobTracker中的作业控制和资源管理两个功能汾开分别由两个不同的进程处理,进而解决了原有JobTracker存在的问题经过架构调整之后,yarn是什么已经完全不同于MRv1它已经变成了一个资源管悝平台,或者说应用程序管理框架运行于yarn是什么之上的计算框架不只限于MapReduce一种,也可以是其他流行计算框架比如流式计算、迭代式计算等类型的计算框架。为了将一个计算框架运行于yarn是什么之上用户需要开发一个组件—ApplicationMaster。作为一个开始yarn是什么首先支持的计算框架是MapReduce,yarn是什么为用户实现好了MapReduce的ApplicationMaster也就是本文要介绍了MRAppMaster。
MRv2运行流程是什么
yarn是什么是一个资源管理框架还是计算框架?
在yarn是什么上写应用程序並不同于我们熟知的MapReduce应用程序必须牢记yarn是什么只是一个资源管理的框架,并不是一个计算框架计算框架可以运行在yarn是什么上。
AM向RM申请container然后配合NM一起来启动的。所以要想在yarn是什么上运行非特定计算框架的程序我们就得实现自己的client和applicationMaster。另外我们自定义的AM需要放在各个NM的classpath丅因为AM可能运行在任何NM所在的机器上。