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 add detect-package-manager 用法 const detectPackageManager = require ( 'detect-package-manager' ) detectPackageManager ( ) . then ( pm => { console . log
rmstateutils 分析Hadoop Yarn Resource Manager状态存储的工具用法: 将存储库检出到系统中的目录。 CD到目录并运行mvn包成功构建之后,目标目录中应存在rmstateutils-1.0-SNAPSHOT-jar-with-dependencies.jar。 ...
Hortonworks Data Platform: YARN Resource Management
Hadoop 深入解析Yarn架构设计#学习resource manager:资源管理器container :监控容器map reduce1与yarn的比较Ya
npm install -g yarn yarn install 安装失败,使用官方下载的yarn.lock文件
赠送jar包:hadoop-yarn-api-2.5.1.jar; 赠送原API文档:hadoop-yarn-api-2.5.1-javadoc.jar; 赠送源代码:hadoop-yarn-api-2.5.1-sources.jar; 赠送Maven依赖信息文件:hadoop-yarn-api-2.5.1.pom; 包含翻译后...
YARN Essentials
yarn 前端打包工具指定配置文件
现在官网下载缓慢,这里可以直接下载安装,所以分享给大家,以供直接下载,版本号 yarn-1.0.2.msi
详细介绍了Hadoop2.x的资源管理框架yarn,内容丰富,很有帮助。
赠送jar包:hadoop-yarn-client-2.6.5.jar; 赠送原API文档:hadoop-yarn-client-2.6.5-javadoc.jar; 赠送源代码:hadoop-yarn-client-2.6.5-sources.jar; 赠送Maven依赖信息文件:hadoop-yarn-client-2.6.5.pom;...
yarn架构详解,关于大数据yarn资源调度的详解
Yarn是 Facebook 提供的替代 npm 的工具具=
现在官网下载缓慢,这里可以直接下载最新版本安装,版本号 yarn-1.22.0.msi yarn是facebook发布的一款取代npm的包管理工具。 快速、可靠、安全的依赖管理工具
2013-Apache Hadoop YARN_ Yet Another Resource Negotiator.pdf
YARN配置、启动与验证 YARN配置、启动与验证 序号 任务名称 任务一 YARN组件参数配置 任务二 MapReduce组件参数配置 任务三 配置SSH无密钥登录(slave1为主节点) 任务四 分发YARN与MapReduce配置文件 任务五 启动...
Yarn 对你的代码来说是一个包管理器, 你可以通过它使用全世界开发者的代码,或者分享自己的代码。 Yarn 做这些快捷、安全、可靠,所以你不用担心什么。 通过Yarn你可以使用其他开发者针对不同问题的解决方案,使...
yarn各节点运作流程
yarn安装.docx
yarn安装包给不能下载的用户提供下载,欢迎下载。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。