org.apache.hadoop.yarn.applications.distributedshell

## Class Client

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

-     @InterfaceAudience.Public
       @InterfaceStability.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 and Description
    --- | ---
    `static String` | `SCRIPT_PATH`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `init(String[] args)` Parse command line options
    `static void` | `main(String[] args)`
    `boolean` | `run()` Main run function for the client

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

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

- - ### Field Detail

    - #### SCRIPT_PATH

          public static final String SCRIPT_PATH

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Client

          public Client(Configuration conf)
                 throws Exception

      Throws:
        `Exception`

    - #### Client

          public Client()
                 throws Exception

      Throws:
        `Exception`

  - ### Method Detail

    - #### 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`

Copyright © 2022 Apache Software Foundation. All rights reserved.