Class LinuxContainerExecutor

java.lang.Object
org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor
org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor
All Implemented Interfaces:
org.apache.hadoop.conf.Configurable

public class LinuxContainerExecutor extends ContainerExecutor

This class provides Container execution using a native container-executor binary. By using a helper written it native code, this class is able to do several things that the DefaultContainerExecutor cannot, such as execution of applications as the applications' owners, provide localization that takes advantage of mapping the application owner to a UID on the execution host, resource management through Linux CGROUPS, and Docker support.

If hadoop.security.authentication is set to simple, then the yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users property will determine whether the LinuxContainerExecutor runs processes as the application owner or as the default user, as set in the yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user property.

The LinuxContainerExecutor will manage applications through an appropriate LinuxContainerRuntime instance. This class uses a DelegatingLinuxContainerRuntime instance, which will delegate calls to either a DefaultLinuxContainerRuntime instance or a OCIContainerRuntime instance, depending on the job's configuration.

See Also:
  • Constructor Details

    • LinuxContainerExecutor

      public LinuxContainerExecutor()
      Default constructor to allow for creation through reflection.
    • LinuxContainerExecutor

      public LinuxContainerExecutor(LinuxContainerRuntime linuxContainerRuntime)
      Create a LinuxContainerExecutor with a provided LinuxContainerRuntime. Used primarily for testing.
      Parameters:
      linuxContainerRuntime - the runtime to use
  • Method Details