什么是YARN(MRv2)
什么是YARN(MRv2)
MapReduce已经在hadoop-0.23上进行了全面检修,现在我们称之为MapReduce 2.0(MRv2)或YARN。
MRv2的基本思想是将JobTracker的两个主要功能,资源管理和作业调度/监视拆分成两个单独的守护进程。我们的想法是拥有一个全局ResourceManager(RM)和每个应用程序ApplicationMaster(AM)。应用程序可以是传统意义上的Map-Reduce作业中的单个作业,也可以是作业的DAG。
ResourceManager和每个节点的从属节点NodeManager(NM)构成了数据计算框架。ResourceManager是在系统中的所有应用程序之间仲裁资源的最终权限。
每个应用程序ApplicationMaster实际上是一个特定于框架的库,其任务是协调来自ResourceManager的资源,并与NodeManager一起执行和监视任务。
ResourceManager有两个主要组件:Scheduler和ApplicationsManager。
Scheduler负责根据已知的容量队列等约束将资源分配给各种正在运行的应用程序。
Scheduler是纯调度程序,因为它不执行应用程序状态的监视或跟踪。此外,由于应用程序故障或硬件故障,它无法保证重新启动失败的任务。调度程序根据应用程序的资源需求执行其调度功能; 它基于资源Container的抽象概念这样做,它包含内存,cpu,磁盘,网络等元素。在第一个版本中,只支持内存
。
Scheduler具有可插入的策略插件,该插件负责在各种队列,应用程序等之间对集群资源进行分区。当前的Map-Reduce调度程序(如CapacityScheduler和FairScheduler)将是插件的一些示例。
CapacityScheduler支持分层队列
,以允许更加可预测的群集资源共享
ApplicationsManager负责接受作业提交,协商第一个容器以执行特定于应用程序的ApplicationMaster,并提供在失败时重新启动ApplicationMaster容器的服务。
NodeManager是每台机器框架代理,负责容器,监视其资源使用情况(CPU,内存,磁盘,网络)并将其报告给ResourceManager / Scheduler。
每个应用程序ApplicationMaster负责从调度程序协商适当的资源容器,跟踪其状态并监视进度。
MRV2保持与先前稳定版本(hadoop-1.x)的API兼容性。这意味着只需重新编译,所有Map-Reduce作业仍应在MRv2之上保持不变。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!