Hadoop YARN
Posted strongyoung88
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop YARN相关的知识,希望对你有一定的参考价值。
YARN的基本原理是,将资源管理和作业调度/监控的功能分离成独立的守护进程。也就是说,有一个全局的ResourceManager(RM),以及每个应用有一个ApplicationMaster(AM)。一个应用可以是单个的作业,也可以是一个作业有向无环图。
ResourceManager和NodeManager组成数据计算框架。在系统中,所有应用的资源分配由ResourceManager负责。每台机器是一个NodeManager,它负责监控container的资源使用(cpu,内存,磁盘,网络),并向ResourceManager/Scheduler报告。
实际上,每个应用的ApplicationMaster是一个特定库的框架,负责与ResourceManager协商资源,并监控和协调NodeManager执行任务。
ResourceManager有两个主要的组成部分:Scheduler和ApplicationsManager。
Scheduler负责分配资源,Scheduler不监控或追踪应用的状态。所以,它也不负责重启由于应用失败或硬件错误导致的失败任务。Scheduler基于应用的资源请求来执行分配功能。它是基于Container来分配内存、cpu、磁盘和网络等资源。
Scheduler有一个插拔式的策略,这个策略是,在各种队列、应用中,能够对集群资源进行分区。当前支持的插拔的调度有CapacityScheduler和FairScheduler。
ApplicationsManager负责接收作业提交请求,协调指定执行应用的第一个container为ApplicationMaster,并在失败的时候,提供重启ApplicationMaster的服务。每个应用的ApplicationMaster有责任从Scheduler协商获取资源container,并追踪这些container的状态信息。
通俗来讲:
1、客户端(client)有个作业需要提交,找到ResourceManager,然后ResourceManager告诉client,我有两个小弟,Scheduler和ApplicationsManager,Scheduler负责资源调度,ApplicationsManager负责作业请求;
2、然后,client找到ApplicationsManager,ApplicationsManager接受了作业请求,并找其老大要了一个container来执行作业,并把这个container作为ApplicationMaster;
3、最后,ApplicationMaster会负责作业新的container的申请,及作业的监控。
参考文献:
以上是关于Hadoop YARN的主要内容,如果未能解决你的问题,请参考以下文章