Updated on 2022-07-11 GMT+08:00

Java API

For details about YARN application programming interfaces (APIs), see http://hadoop.apache.org/docs/r3.1.1/api/index.html.

Common Interfaces

Common YARN Java classes are as follows:

  • ApplicationClientProtocol

    This class is used between the client and ResourceManager. The client submits applications to ResourceManager, queries the running status of applications, and kills applications using this protocol.

    Table 1 Common interfaces of ApplicationClientProtocol

    Interface

    Description

    forceKillApplication(KillApplicationRequest request)

    The client requests ResourceManager to stop a submitted task through this interface.

    getApplicationAttemptReport(GetApplicationAttemptReportRequest request)

    The client obtains the report of specified application attempts from ResourceManager through this interface.

    getApplicationAttempts(GetApplicationAttemptsRequest request)

    The client obtains the report of all application attempts from ResourceManager through this interface.

    getApplicationReport(GetApplicationReportRequest request)

    The client obtains an application report from ResourceManager through this interface.

    getApplications(GetApplicationsRequest request)

    The client obtains information about applications that meet filtering conditions from ResourceManager through this interface.

    getClusterMetrics(GetClusterMetricsRequest request)

    The client obtains metrics of clusters from ResourceManager through this interface.

    getClusterNodes(GetClusterNodesRequest request)

    The client obtains information about all nodes in a cluster from ResourceManager through this interface.

    getContainerReport(GetContainerReportRequest request)

    The client obtains the report of a Container from ResourceManager through this interface.

    getContainers(GetContainersRequest request)

    The client obtains the report of all Containers of an application attempt from ResourceManager through this interface.

    getDelegationToken(GetDelegationTokenRequest request)

    The client obtains the delegation token through this interface. The delegation token is used by the container to access related services.

    getNewApplication(GetNewApplicationRequest request)

    The client obtains a new application ID through this interface for submitting a new application.

    getQueueInfo(GetQueueInfoRequest request)

    The client obtains queue information from ResourceManager through this interface.

    getQueueUserAcls(GetQueueUserAclsInfoRequest request)

    The client obtains queue access permission information about the current user from ResourceManager through this interface.

    moveApplicationAcrossQueues(MoveApplicationAcrossQueuesRequest request)

    This interface is used to move an application to a new queue.

    submitApplication(SubmitApplicationRequest request)

    The client submits a new application to ResourceManager through this interface.

  • ApplicationMasterProtocol

    This class is used between ApplicationMaster and ResourceManager. ApplicationMaster registers with ResourceManager, and applies for resources and obtains the running status of each task from ResourceManager using this protocol.

    Table 2 Common interfaces of ApplicationMasterProtocol

    Interface

    Description

    allocate(AllocateRequest request)

    ApplicationMaster submits a resource allocation request through this interface.

    finishApplicationMaster(FinishApplicationMasterRequest request)

    ApplicationMaster notifies ResourceManager of running success or failure through this interface.

    registerApplicationMaster(RegisterApplicationMasterRequest request)

    ApplicationMaster registers with ResourceManager through this interface.

  • ContainerManagementProtocol

    This class is used between ApplicationMaster and NodeManager. ApplicationMaster requests NodeManager to start or terminate a Container or queries the Container running status using this protocol.

    Table 3 Common interfaces of ContainerManagementProtocol

    Interface

    Description

    getContainerStatuses(GetContainerStatusesRequest request)

    ApplicationMaster obtains the current status of the Containers from NodeManager through this interface.

    startContainers(StartContainersRequest request)

    ApplicationMaster requests NodeManager to start Containers through this interface.

    stopContainers(StopContainersRequest request)

    ApplicationMaster requests NodeManager to stop a series of allocated Containers through this interface.