Resource Manager 原理 简介
本问翻译自: http://hortonworks.com/blog/apache-hadoop-yarn-resourcemanager/
如前所述,ResourceManager (RM)是一个仲裁整个集群可用资源的主节点,帮助YARN系统管理其上的分布式应用。它同NodeManagers(NMs) 和ApplicationMasters(AMs)一起工作。
1、NodeManagers 从ResourceManager获取指令并管理本节点的可用资源
2、ApplicationMasters 的职责是从ResourceManager谈判资源,并为NodeManagers启动容器。
Resource Manager 组件
1、RM客户端的接口组件
(1)ClientService: Resource Manager的客户端接口。这个组件掌控RM的所有RPC接口。从客户端可以操作应用的提交,应用的结束,获得队列信息,集群状态等。
(2)AdminService:为了确保管理的请求由于普通用户的请求而得不到响应和给相应的操作赋高的优先级,所有的管理操作比如刷新节点列表,队列配置等,都可以通过这个接口提供。
2、RM连接到节点组件
(1)ResourceTrackerService:这个组件相应所有节点的RPCs请求。它负责新节点的注册、拒绝无效的节点、获得节点心跳并将其转发到YarnScheduler。它的工作同NMLivelinessMonitor、NodesListManager 很接近。
(2)NMLivelineMonitor:对活的节点保持跟踪,隔离死亡的节点,这个组件跟踪各个节点的最新心跳时间。任何节点在超过预定的时间没有心跳,默认是10 分钟,则被RM认为是节点死亡并被失效掉。所有运行在一
个失效的节点上的containers 将被标示为死亡,同时不再会有新的container被调度到这类节点。
(3)NodesListManager:一个有效的和排除的节点集合。负责从读取host配置文件的特定参数:yarn.resourcemanager.nodes.include-path 和yarn.resourcemanager.nodes.exclude-path 。从这些文件中寻找初始化节点列表,同时根据时间的推移保持对退役的节点跟踪。
3、与应用AMs相互作用的组件
(1)ApplicationMasterService:这个组件负责相应所有AMs的RPC请求。负责对新AMs的注册,终止/注销来自即将结束的AMs的请求。获取来自各个运行着的AMs的容器分配和从新分配请求,并将其转发到YarnSecheduler.他和AMLivelinessMonitor 相近。
(2)AMLivelinessMonitor:管理活着的AMs列表和死亡/无相应AMs,这个组件保持跟踪各个AM的最新心跳时间。任何AM在预定的时间内没有心跳,默认10分钟,就会RM被认为死亡并失效掉。所有运行在或不分配在失效的AM上的container被标识为死亡。RM 分配一个新的AM 去运行一个新的container,默认允许尝试的次数最大为4次。
4、RM核心——调度器及相关组件
(1)ApplicationManager: 负责维持已提交的应用集合。同时为了相应用户通过webUI或者命令行查询已经完成的应用, 保持可已完成的应用的一份缓存。
(2)ApplicationACLsManager:RM 需要为用户可见的API提供一个入口,类似客户端和管理请求只有被授权的用户才能通过。这个组件维持每个应用的ACLs列表,同时强制每个请求(比如杀死应用程序)前查看应用程序的状态是否可接受。
(3)ApplicationMasterLauncher:维护一个线程池为新提交的应用程序发布AMs,同时维护应用程序由于某种原因尝试退出的AM。同时也对已经自然运行结束或者被迫结束的应用程序的AM进行清洗。
(4)YarnScheduler: 调度器负责为受限于容量、队列等的应用程序分配资源。它执行调度功能是基于应用程序的资源请求,例如内存,cpu,硬盘,网络等。目前,只有内存是支持的,cpu也接近完全支持。
(5)ContainerAllocationExpirer:这个组件管理确保所有的已分配容器被AMs使用着,随后被发布到相应的NMs中。AMs 运行着非可靠的用户代码,有可能存在分配的资源没有被使用的情况,这将导致集群使用率降低。加上这个组件,ContainerAllocationExpirer 维护那些已被分配的容器但还没有被相应的NMs使用的列表。对于任何容器,如果对应的NM在预定的时间间隔内没有向RM汇报容器已经开始启动,默认10分钟,容器将被RM认为死亡并被标志为过期。
5、令牌加密管理组件:RM 有一个密钥管理集合,用来对令牌、密钥进行管理,将来的文章将讨论一种更安全令牌的详细描述,密钥管理但简要总结如下:
(1)ApplicationTokenSecretManager:为了避免任意进程发送RM调度请求,RM使用应用程序为令牌称为ApplicationTokens。这个组件保存在本地内存中每个令牌直到应用程序完成,并使用它来验证任何请求来自一个有效的AM 进程。
(2)ContainerTokenSecretManager: 为ContainerTokens , SecretManager那些特殊令牌,由RM为AM的一个容器的一个特殊节点签发的。ContainerTokens使用AMs创建一个连接到相应的NM,容器被分配的地方。
(3)RMDelegationTokenSecretManager: ResourceManager特定委托令牌,密钥管理。它负责生成委托令牌可以给客户,令牌传递给未经身份验证但希望能够跟RM进行沟通的进程。
6、委托令牌重建:在安全模式,RM 是有kerberos授权的,同时也为应用程序提供重建文件系统的令牌服务,只要提交的应用程序已在运行,这个组件为该应用重建令牌,直到不需要再重建。
总结
YARN ,ResourceManager 主要局限在于调度,只有仲裁系统中可用的资源在竞争的应用,而不关心自身与应用程序的状态管理。 由于这种清晰的职能划分,再加上上面描述的模块化,并与讨前面讨论的强大的调度程序API,RM能够解决最重要的设计要求,可扩展性,支持交替编程范例。
为允许不同的限制策略,RM调度器是可插拔的,同时允许不同的算法。
相关推荐
首先,我们关注YARN的Resource Manager API。Resource Manager是YARN中的核心组件,负责全局资源管理和调度。通过`Cluster Information API`,开发者可以获取集群的基本状态和元数据。例如,通过访问`...
YARN的主要组成部分包括Resource Manager、Node Manager、Application Master和Container。 Resource Manager,即资源管理器,是YARN的心脏,负责全局的资源分配和管理。它由调度器和应用程序管理器两部分组成。...
6. **监控Yarn Resource Manager**:通过访问YARN Resource Manager的Web界面(默认地址为http://master:18088),可以查看集群的状态和正在运行的应用信息,确保Spark应用正常运行。 在这个过程中,还需要掌握一些...
Yarn,全称为“Yet Another Resource Negotiator”,最初由Facebook于2016年推出,是一款针对JavaScript开发的开源包管理器,旨在替代原有的npm(Node Package Manager)。Yarn的出现是为了解决npm在处理依赖管理和...
rmstateutils 分析Hadoop Yarn Resource Manager状态存储的工具用法: 将存储库检出到系统中的目录。 CD到目录并运行mvn包成功构建之后,目标目录中应存在rmstateutils-1.0-SNAPSHOT-jar-with-dependencies.jar。 ...
1. **YARN架构**:YARN将原本Hadoop 1.x中的JobTracker职责拆分为Resource Manager(RM)和Application Master(AM)。RM负责全局资源管理,而AM则为每个应用程序协调任务执行。 2. **ResourceManager(RM)**:RM...
Yarn的核心理念是将集群资源管理和应用程序的执行过程分开,由两个独立的进程来负责:Resource Manager和Application Master。Resource Manager全局负责整个集群的资源分配,其内部包含调度器Scheduler和应用程序...
YARN的基本思想是将数据处理和资源管理分开,将原本MapReduce中的JobTracker职责分解为两个独立的角色:Resource Manager(RM)和Application Master(AM)。RM全局负责集群的资源分配和监控,而AM则专注于每个应用...
YARN(Yet Another Resource Negotiator)是Apache Hadoop的一个子项目,它是下一代MapReduce的框架,旨在解决原有Hadoop MapReduce在可扩展性、资源利用率、多计算模型支持等方面的局限性。YARN的设计目标是实现一...
【标题】:“YARN 最新安装包.rar”指的是YARN(Yet Another Resource Negotiator)的最新版本安装包,它是一个开源的资源管理器,主要用于分布式计算框架,如Apache Hadoop。YARN是Hadoop生态系统中的关键组件,...
《Hadoop技术内幕:深入Yarn架构设计与实现原理》这本书深入探讨了Hadoop生态系统中的核心组件YARN(Yet Another Resource Negotiator),它是Hadoop 2.x版本中的关键改进,旨在解决早期Hadoop MapReduce的资源管理...
Yarn,全称为“Yet Another Resource Negotiator”,是由Facebook在2016年推出的,是一款替代npm(Node Package Manager)的包管理工具。它的出现旨在解决npm在大型项目中可能出现的速度、可靠性和安全性问题。在...
在YARN中,JobTracker被拆分为两个角色:Resource Manager(RM)和Application Master(AM)。RM全局管理集群资源,负责调度和分配任务;而AM则是每个应用程序的协调者,它与RM交互以获取资源,监控任务进度,并在...
首先,YARN架构主要包括三个主要组件:Resource Manager(资源管理器)、Node Manager(节点管理器)和Application Master(应用程序管理器)。 1. **Resource Manager (RM)** 是整个集群的全局资源管理者,负责...
YARN(Yet Another Resource Negotiator),即另一种资源协调者,是Apache Hadoop项目的一部分,它代表了Hadoop第二代的MapReduce框架,也就是Hadoop 2.0。YARN的主要目的是为了解决之前版本Hadoop的扩展性和资源...
《Hadoop技术内幕深入解析YARN架构设计与实现原理》这本书由董西成撰写,是了解和掌握YARN(Yet Another Resource Negotiator)的核心参考资料。YARN是Hadoop生态系统中的关键组件,它作为数据处理框架的资源管理器...
YARN将资源管理和作业控制分离,引入了一个全局的Resource Manager和每个应用对应的Application Master。Resource Manager负责资源调度,Application Manager管理用户作业,Node Manager则管理节点上的具体任务执行...
YARN的主要设计目标是解决上述问题,它将资源调度与任务调度分离,引入了Resource Manager(RM)和Application Master(AM)。RM负责全局的资源管理和分配,而AM则专注于特定应用程序的资源需求。这使得YARN能够支持...
YARN(Yet Another Resource Negotiator),是Apache Hadoop项目中的一个核心组件,主要负责管理大数据处理平台上的计算资源。它作为Hadoop 2.x版本中的资源管理层,从MapReduce中分离出来,实现了数据计算与资源...
在YARN架构中,JobTracker的职责被拆分为Resource Manager(RM)和Application Master(AM),RM负责全局资源的管理和分配,AM则负责单个应用程序的执行监控和资源请求。这样的设计使得YARN能够支持多种计算框架,如...