文章目录
Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。
Yarn的作用
- 对集群资源进行整合,让我们资源得到最大化利用,同一套硬件资源集群上可以运行多个任务(mr,spark, flink)。
- 使得不同性能的机器的工作能够协调统一;
Yarn基本架构
YARN 主要由 ResourceManager、NodeManager、ApplicationMaster 和 Container 等组件构成。
在Hadoop1.0中很重要的角色是jobtracker,这是主,承担着资源调度和任务管理的角色,相当于集两大功能于一身,真正干活的是tasktracker。
在Hadoop2.0中,jobtracker的权利被下放给ResourceManager(集群资源管理)和ApplocationMaster(任务管理)。
RM
只是jobtracker中“资源管理”的角色,只负责运行中应用程序资源的分配,而不管监控应用程序和状态跟踪。
本质:是一个独立的守护进程,运行在专有的机器上,机器的配置要足够好
RM的功能
- RM处理客户端请求,接收jobsubmitterf提交的作业,按照作业的上下文( Context)信息,以及从 Nodemanager(NM)收集来的状态信息,启动调度过程,分配一个 Container作为 App Master;
- RM拥有为系统中所有应用资源分配的決定权,是中心服务,做的事情就是调度,启动每一个job所属的 Application、另外监控 Applicationg的存在情况am
- 与运行在每个节点上的NM进程交互,通过心跳通信,达到监控NM的目的
- RM有一个可插拔的调度器组件 Scheduler
- 不负责应用程序的监控和状态跟踪(AM)
- 不保证应用程序失败或者硬件失败的情况下对Task的重启(AM)
AM
只是jobtracker中“任务调度”的角色 。只有在任务的整个生命周期内,AM才是启动状态,当任务执行完毕,AM消失,不需要监控。
本质:是一个特殊的container,管理其他的container
AM的作用
根据提交的任务和RM的反馈,去寻找干活的人(NodeManager)。
AM的启动流程
-
Client向RM发出请求;
-
RM返回一个 ApplicationID作为回应;
-
Clientl向RM回应 Application