- YARN(Yet Another Resource Negotiator)通过两类长期运行的守护进程(daemon)提供核心服务,a resource manager(每一个集群只有一个)来管理集群资源,node manager在集群中所有节点上运行,启动和监控容器。一个容器运行一个特别的应用进程,分配一定的资源(内存,cpu)
- 在YARN上执行一个应用,客户端访问resource manager来执行一个应用主进程,resource manager找到一个node manager来运行应用主进程在一个容器中。
- 一个应用进程可以在容器中执行一个简单的计算,也可以再申请一个nodemanager来执行分布式计算
- YARN本身不提供应用的任何部分,使用RPC层来进行远程沟通,传递状态,更新属性,返回结果。
- 一个YARN应用可以申请资源在任何时候,它可以全部申请完在运行开始,也可以动态的申请来满足需求的变化
- Sprak是一次性申请完,MapReduce则是Map阶段申请完,Reduce动态申请。
- 应用的生命周期(Application Lifespan)很广泛,可以几秒也可以几天甚至几个月。通常可以对用户的job进行分类,有的是一个job就对应一个应用,例如mapreduce。另外一个模型是一个workflow或者(user session不太理解)job对应一个应用,这种模型比第一个高校点,因为应用可以复用。同时中间数据也可以缓存下来,Spark使用这种模型。
- 第三种模型是不同用户共享的一个长期执行的应用。这类应用通畅扮演一种协调角色。(impla是这种)

YARN
原文:http://www.cnblogs.com/dalu610/p/5239319.html