NodeManager是YARN中每个节点上的代理,它管理Hadoop集群中单个计算节点,包括与ResourceManger保持通信,监督Container的生命周期管理,监控每个Container的资源使用情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务。本文介绍了NodeManager内部实现。

本文介绍YARN自带的一个非常简单的应用程序编程实例—distributedshell,他可以看做YARN编程中的“hello world”,它的主要功能是并行执行用户提供的shell命令或者shell脚本。本文主要介绍distributedshell的实现方法。

Application是NodeManager中用于维护一个Application生命周期的数据结构,它的实现是ApplicationImpl,该类维护了一个Application状态机,记录了Application可能存在的各个状态以及导致状态间转换的事件,本文介绍了该状态机。

Container是NodeManager中用于维护一个Container生命周期的数据结构,它的实现是ContainerImpl,该类维护了一个Container状态机,记录了Container可能存在的各个状态以及导致状态间转换的事件,本文介绍了该状态机。

Borg(来自Google),YARN(来自Apache,属于Hadoop下面的一个分支,开源),Mesos(来自Twitter,开源),Torca(来自腾讯搜搜),Corona(来自Facebook,开源)被称为资源统一管理系统或者资源统一调度系统,它们是大数据时代的必然产物。