Hadoop Yarn-入门篇

参考并推荐博文:https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/

重构根本的思想是将 JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。

Hadoop Yarn(MapReduceV2)架构:

ResourceManager :一个中心的服务,

功能:负责作业与资源的调度。接收 JobSubmitter 提交的作业,按照作业的上下文 (Context) 信息,以及从 NodeManager 收集来的状态信息,启动调度过程,分配一个 Container 作为 App Mstr,监控 ApplicationMaster 的存在情况;

ResourceManager 支持分层级的应用队列,这些队列享有集群一定比例的资源。

ResourceManager 提供一个调度策略的插件,它负责将集群资源分配给多个队列和应用程序。调度插件可以基于现有的能力调度和公平调度模型。它是基于应用程序对资源的需求进行调度的 ; 每一个应用程序需要不同类型的资源因此就需要不同的容器。

注:从某种意义上讲它就是一个纯粹的调度器,它在执行过程中不对应用进行监控和状态跟踪。同样,它也不能重启因应用失败或者硬件错误而运行失败的任务。

NodeManager :

功能:负责 Container 状态的维护,并向 RM 保持心跳,功能相对单一。

ApplicationMaster

功能:负责一个 Job 生命周期内的所有工作,它结合从 ResourceManager 获得的资源和 NodeManager 协同工作来运行和监控任务。

类似老的框架中 JobTracker。但注意每一个 Job(不是每一种)都有一个 ApplicationMaster,它可以运行在 ResourceManager 以外的机器上。

注::Job 里面所在的 task 的监控、重启等等内容不见了。这就是 AppMst 存在的原因。

原文地址:https://www.cnblogs.com/zhaojinxin/p/7418777.html