码迷,mamicode.com
首页 > 移动开发 > 详细

Yarn协议ApplicationClientProtocol

时间:2014-11-21 10:56:02      阅读:490      评论:0      收藏:0      [点我收藏+]

标签:des   style   io   ar   color   使用   sp   for   文件   

协议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:空响应

+

Yarn协议ApplicationClientProtocol

标签:des   style   io   ar   color   使用   sp   for   文件   

原文地址:http://my.oschina.net/simplefocus/blog/347057

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!