MAPREDUCE服务 MRS-YARN Java API接口介绍:常用接口
常用接口
YARN常用的Java类有如下几个。
- ApplicationClientProtocol
用于Client与ResourceManager之间。Client通过该协议可实现将应用程序提交到ResourceManager上,查询应用程序的运行状态或者中止应用程序等功能。
表1 ApplicationClientProtocol常用方法 方法
说明
forceKillApplication(KillApplicationRequest request)
Client通过此接口请求RM中止一个已提交的任务。
getApplicationAttemptReport(GetApplicationAttemptReportRequest request)
Client通过此接口从RM获取指定ApplicationAttempt的报告信息。
getApplicationAttempts(GetApplicationAttemptsRequest request)
Client通过此接口从RM获取所有ApplicationAttempt的报告信息。
getApplicationReport(GetApplicationReportRequest request)
Client通过此接口从RM获取某个应用的报告信息。
getApplications(GetApplicationsRequest request)
Client通过此接口从RM获取满足一定过滤条件的应用的报告信息。
getClusterMetrics(GetClusterMetricsRequest request)
Client通过此接口从RM获取集群的Metrics。
getClusterNodes(GetClusterNodesRequest request)
Client通过此接口从RM获取集群中的所有节点信息。
getContainerReport(GetContainerReportRequest request)
Client通过此接口从RM获取某个Container的报告信息。
getContainers(GetContainersRequest request)
Client通过此接口从RM获取某个ApplicationAttemp的所有Container的报告信息。
getDelegationToken(GetDelegationTokenRequest request)
Client通过此接口获取授权票据,用于container访问相应的service。
getNewApplication(GetNewApplicationRequest request)
Client通过此接口获取一个新的应用ID号,用于提交新的应用。
getQueueInfo(GetQueueInfoRequest request)
Client通过此接口从RM中获取队列的相关信息。
getQueueUserAcls(GetQueueUserAclsInfoRequest request)
Client通过此接口从RM中获取当前用户的队列访问权限信息。
moveApplicationAcrossQueues(MoveApplicationAcrossQueuesRequest request)
移动一个应用到新的队列。
submitApplication(SubmitApplicationRequest request)
Client通过此接口提交一个新的应用到RM。
- ApplicationMasterProtocol
用于ApplicationMaster与ResourceManager之间。ApplicationMaster使用该协议向ResourceManager注册、申请资源、获取各个任务的运行情况等。
表2 ApplicationMasterProtocol常用方法 方法
说明
allocate(AllocateRequest request)
AM通过此接口提交资源分配申请。
finishApplicationMaster(FinishApplicationMasterRequest request)
AM通过此接口通知RM其运行成功或者失败。
registerApplicationMaster(RegisterApplicationMasterRequest request)
AM通过此接口向RM进行注册。
- ContainerManagementProtocol
用于ApplicationMaster与NodeManager之间。ApplicationMaster使用该协议要求NodeManager启动/中止Container或者查询Container的运行状态。
表3 ContainerManagementProtocol常用方法 方法
说明
getContainerStatuses(GetContainerStatusesRequest request)
AM通过此接口向NM请求Containers的当前状态信息。
startContainers(StartContainersRequest request)
AM通过此接口向NM提供需要启动的containers列表的请求。
stopContainers(StopContainersRequest request)
AM通过此接口请求NM停止一系列已分配的Containers。