概述
YARN 是一个资源管理系统,负责集群资源的管理和调度。如果想要将一个新的应用程序运行在YARN之上,通常需要编写两个组件Client和ApplicationMaster。其中, Client负责向ResourceManager提交 ApplicationMaster,并查询应用程序运行状态;ApplicationMaster负责向ResourceManager申请资源(以Container形式表示), 并与NodeManager通信以启动各Container, 此外,ApplicationMaster还负责监控各个任务运行状态, 并在失败时为其重新申请资源。通常而言, 编写一个YARN Appcalition会涉及3个RPC协议, 分别为:
❑ApplicationClientProtocol (用于Client与ResourceManager之间)。Client通过该协议可实现将应用程序提交到ResourceManager上、查询应用程序的运行状态或者杀死应用程序等功能。
❑ApplicationMasterProtocol (用于ApplicationMaster与ResourceManager之间)。App licationMaster使用该协议向ResourceManager注册、 申请资源、 获取各个任务运行情况等。
❑ContainerManagementProtocol (用于ApplicationMaster与NodeManager之间)。ApplicationMaster使用该协议要求NodeManager启动/撤销Container或者查询Container 的运 行状态。Client客户端设计
YARN Application客户端的主要作用是提供一系列访问接口供用户与YARN交互, 包括提交Application、查询Application运行状态,修改Application属性(如优先级)等。其中, 最重要的访问接口之一是提交Application 的函数。
ApplicationMaste设计
ApplicationMaster ( AM )需要与ResourceManager ( RM )和NodeManager (NM )两个服务交互, 通过与ResourceManager 交互, ApplicationMaster 可获得任务计算所需的资源,通过与NodeManager 交互, ApplicationMaster 可启动计算任务( container ),并监控它直到运行完成
Yarn_应用程序设计
最新推荐文章于 2021-10-09 21:21:49 发布