Yarn协议ApplicationClientProtocol

协议ApplicationClientProtocol

Hadoop-Yarn 源码阅读-Yarn 
client与ResourceManager之间的协议,用来

  • 提交、中止作业
  • 获取应用信息、集群metrics信息、节点信息、队列信息和ACL信息

各接口说明:

  1. public GetNewApplicationResponse getNewApplication(GetNewApplicationRequest request) throws YarnException, IOException;

客户端使用该方法从ResourceManager获取一个新的ApplicationId以提交一个新的Application(后文使用缩写App)。ResourceManager(后文使用缩写RM)响应一个GetNewApplicationResponse类型的值,该值包含一个新的、递增的ApplicationId和集群最大可用资源等其他信息。 
@param:request:要获得新ApplicationId的ApplicationRequest 
@return:包含ApplicationId的GetNewApplicationRequest类型的值


  1. public SubmitApplicationResponse submitApplication(SubmitApplicationRequest request) throws YarnException, IOException;

客户端使用该接口向RM提交一个新的App。 
客户端需要提供更多信息,比如队列;启动并运行ApplicationMaster的那个container的相关信息,包括:本地资源(二进制文件、jars、files等),安全令牌,环境变量和运行命令。 
当前,当接受一个App提交,RM响应一个(空的)SubmitApplicationResponse;拒绝则抛出一个异常。调用该方法之后应该立即调用getApplicationReport(GetApplicationReportRequest)来确定App是否被正确得提交。 
安全模式下,在接收App提交前,RM会检查客户端是否具有队列的访问权限。 
@param:request:提交新App请求 
@return:(空)接收提交的结果 
@remark:当ResourceRequest超过配置的最低或最高资源边界,将抛出一个异常


  1. public KillApplicationResponse forceKillApplication(KillApplicationRequest request) throws YarnException, IOException;

客户端使用该方法来中止一个已提交的App。 
客户端通过参数request中的ApplicationId成员指定需要中止的App。 
安全模式下,在中止App前,RM会检查客户端是否具有App、队列的访问权限。 
当前,当中止成功RM响应一个空响应;当拒绝中止,RM抛出一个异常。 
@param:request:中止已提交App的请求 
@return:如上述


  1. public GetApplicationReportResponse getApplicationReport(GetApplicationReportRequest request) throws YarnException, IOException;

客户端使用该方法从RM处获得一个App报告。 
客户端通过在request中设置ApplicationId来指定想要获得报告的App。 
安全模式下,在接受App报告请求前,RM检查客户端是否有App、队列的访问权限。 
RM响应一个GetApplicationReportResponse类型的值,该值包含指定App的App报告。 
如果用户没有VIEW_APP权限,以下字段将被设置成:

  • tracking URL:"N/A"
  • original tracking URL:"N/A"
  • resource usage report:全为-1

@param:request:App报告的请求 
@return:App报告


  1. public GetClusterMetricsResponse getClusterMetrics(GetClusterMetricsRequest request) throws YarnException, IOException;

客户端使用该方法从RM获得集群的metrics(度量)。 
RM响应一个GetClusterMetricsResponse类型值,该值包含YarnClusterMetrics(包含更多信息,如集群中当前的节点数量)。


  1. public GetApplicationsResponse getApplications(GetApplicationsRequest request) throws YarnException, IOException;

客户端使用该方法从RM获得匹配request过滤条件的App报告。 
该方法响应一个GetApplicationsResponse类型的值。GetApplicationsResponse类型包含ApplicationReport。 
如果用户没有某个App的VIEW_APP访问权,会响应request描述的过滤过的回应。


  1. public GetClusterNodesResponse getClusterNodes(GetClusterNodesRequest request) throws YarnException, IOException;

客户端使用该方法从RM获得集群中所有节点信息。


  1. public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request) throws YarnException, IOException;

客户端使用该方法从RM获得队列信息。 
客户端通过设置GetQueueInfoRequest,可以请求类似used/total资源、子队列、正在运行的App等信息。 
安全模式下,在响应队列信息之前,RM会校验客户端是否具有访问权限。


  1. public GetQueueUserAclsInfoResponse getQueueUserAcls(GetQueueUserAclsInfoRequest request) throws YarnException, IOException;

客户端使用该方法从RM获得队列ACL列表。 
RM响应当前存在的所有队列的ACL。


  1. public GetDelegationTokenResponse getDelegationToken(GetDelegationTokenRequest request) throws YarnException, IOException;

客户端调用该方法获得授权的令牌,使container能够和使用对应授权令牌的服务通信。 
RM响应可以让客户端与对应服务通信的授权令牌。 
响应包含可以让container用来和ClientRMService(继承ApplicationClientProtocol)对话的令牌。


  1. public RenewDelegationTokenResponse renewDelegationToken(RenewDelegationTokenRequest request) throws YarnException, IOException;

更新一个已存在的授权令牌 
@param:request:将被更新的授权令牌 
@return:新授权令牌的失效时间


  1. public CancelDelegationTokenResponse cancelDelegationToken(CancelDelegationTokenRequest request) throws YarnException,IOException;

撤销一个已存在授权令牌。

@param:request:将要撤销的令牌 
@return:空响应

+

时间: 2024-10-11 11:36:30

Yarn协议ApplicationClientProtocol的相关文章

Yarn之ResourceManager详细分析笔记(一)待续

一.概述     本文将介绍ResourceManager在Yarn中的功能作用,从更细的粒度分析RM内部组成的各个组件功能和他们相互的交互方式. 二.ResourceManager的交互协议与基本职能 1.ResourceManager交互协议 在整个Yarn框架中主要涉及到7个协议,分别是ApplicationClientProtocol.MRClientProtocol.ContainerManagementProtocol.ApplicationMasterProtocol.Resour

Hadoop - YARN 通信协议

一 简单介绍 RPC协议是连接各个组件的"大动脉",了解不同组件之间的RPC协议有助于我们更深入地学习YARN框架. 在YARN中.不论什么两个需相互通信的组件之间仅有一个RPC协议,而对于不论什么一个RPC协议,通信两方有一端是Client,还有一端为Server,且Client总是主动连接Server的,因此.YARN实际上採用的是拉式(pull-based)通信模型. 二  协议类型 YARN主要由下面几个RPC协议组成,各组件的通信协议(箭头指向的组件是RPC Server,而

YARN批处理方式kill Applications解决方案

前言 在使用hadoop集群的时候,所有的任务都是最终以Application的形式跑在集群中,不管你是自己写的MR程序亦或是你写的hive sql转化成的mr任务,最终都是以Application应用的身份在跑.这些Application跑完之后,这些信息在jobHistory中就可以看了,可以说hadoop在这方面做得真的非常完整.但是完善归完善.但是jobHistory可以说是一种"事后分析",而有的时候我们反而是需要去控制目前所在的Applications.举个例子,比如某用户

yarn的笔记

一.基本架构 YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster. 其中ResourceManager负责整个系统的资源管理和分配,而ApplicationMaster负责单个应用程序的管理.   二. YARN基本组成结构 YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceMana

Hadoop YARN架构设计要点

YARN是开源项目Hadoop的一个资源管理系统,最初设计是为了解决Hadoop中MapReduce计算框架中的资源管理问题,但是现在它已经是一个更加通用的资源管理系统,可以把MapReduce计算框架作为一个应用程序运行在YARN系统之上,通过YARN来管理资源.如果你的应用程序也需要借助YARN的资源管理功能,你也可以实现YARN提供的编程API,将你的应用程序运行于YARN之上,将资源的分配与回收统一交给YARN去管理,可以大大简化资源管理功能的开发.当前,也有很多应用程序已经可以构建于Y

YARN平台上各个节点平台间的交互

resourcemanager:管理集群上面的资源 cpu和内存 NodeManager:上面跑程序  applicationMaster  多个 在NodeManager上面 Mapreduce上面的程序叫MRAppMaster 在NodeMnager上面Mapreduce 上运行MapTask或ReduceTask     客户端 :用户提交代码的地方     遵循RPC通讯机制       在Hadoop2中,RPC的服务器代码变了 用户将代码提交到ResourceManager上,需要走

hadoop配置参数速查大全

dfs.block.access.key.update.interval=600 dfs.block.access.token.enable=false dfs.block.access.token.lifetime=600 dfs.blockreport.initialDelay=0 dfs.blockreport.intervalMsec=21600000 dfs.blockreport.split.threshold=1000000 dfs.blocksize=134217728 dfs.

【大数据系列】win10不借助Cygwin安装hadoop2.8

一.下载安装包 解压安装包并创建data,name,tmp文件夹 二.修改配置文件 1.core-site.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Licensed under the Apache License, Ver

从Resource Manager中获取一个新的Application ID

前提:有一个hadoop集群,并且拷贝core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml到classpath下,可以使src/main/resources 1.获取一个GetNewApplicationRequest,实例是protobuf的类GetNewApplicationRequestPBImpl,未来会支持其他序列化方式.序列化方式决定了RPC工厂,产生哪种可序列化类. Records.newRecord,就是实例化一个pr