Client (Apache Hadoop Main 3.5.0 API)
Description: declaration: package: org.apache.hadoop.yarn.applications.distributedshell, class: Client

Package org.apache.hadoop.yarn.applications.distributedshell

# Class Client

java.lang.Object
org.apache.hadoop.yarn.applications.distributedshell.Client

@Public @Unstable public class Client extends Object
Client for Distributed Shell application submission to YARN.

The distributed shell client allows an application master to be launched that in turn would run the provided shell command on a set of containers.

This client is meant to act as an example on how to write yarn-based applications.

To submit an application, a client first needs to connect to the `ResourceManager` aka ApplicationsManager or ASM via the `ApplicationClientProtocol`. The `ApplicationClientProtocol` provides a way for the client to get access to cluster information and to request for a new `ApplicationId`.

For the actual job submission, the client first has to create an `ApplicationSubmissionContext`. The `ApplicationSubmissionContext` defines the application details such as `ApplicationId` and application name, the priority assigned to the application and the queue to which this application needs to be assigned. In addition to this, the `ApplicationSubmissionContext` also defines the `ContainerLaunchContext` which describes the `Container` with which the `ApplicationMaster` is launched.

The `ContainerLaunchContext` in this scenario defines the resources to be allocated for the `ApplicationMaster`'s container, the local resources (jars, configuration files) to be made available and the environment to be set for the `ApplicationMaster` and the commands to be executed to run the `ApplicationMaster`.

Using the `ApplicationSubmissionContext`, the client submits the application to the `ResourceManager` and then monitors the application by requesting the `ResourceManager` for an `ApplicationReport` at regular time intervals. In case of the application taking too long, the client kills the application by submitting a `KillApplicationRequest` to the `ResourceManager`.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `SCRIPT_PATH`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Client()`
  `Client(Configuration conf)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `init(String[] args)`
  Parse command line options
  `static void`
  `main(String[] args)`
  `boolean`
  `run()`
  Main run function for the client
  `protected void`
  `sendStopSignal()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### SCRIPT_PATH

    public static final String SCRIPT_PATH
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### Client

    public Client(Configuration conf) throws Exception
    Throws:
      `Exception`

  - ### Client

    public Client() throws Exception
    Throws:
      `Exception`

- ## Method Details

  - ### main

    public static void main(String[] args)
    Parameters:
      `args` - Command line arguments

  - ### init

    public boolean init(String[] args) throws org.apache.commons.cli.ParseException
    Parse command line options
    Parameters:
      `args` - Parsed command line options
    Returns:
      Whether the init was successful to run the client
    Throws:
      `org.apache.commons.cli.ParseException`

  - ### run

    public boolean run() throws IOException, YarnException
    Main run function for the client
    Returns:
      true if application completed successfully
    Throws:
      `IOException`
      `YarnException`

  - ### sendStopSignal

    @VisibleForTesting protected void sendStopSignal()