diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index be7cc89f5da..3cd57c17bf1 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -1211,6 +1211,8 @@ public static boolean isAclEnabled(Configuration conf) { /** who will execute(launch) the containers.*/ public static final String NM_CONTAINER_EXECUTOR = NM_PREFIX + "container-executor.class"; + public static final String DEFAULT_NM_CONTAINER_EXECUTOR = + "org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor"; /** List of container state transition listeners.*/ public static final String NM_CONTAINER_STATE_TRANSITION_LISTENERS = diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/gpu/GpuResourcePlugin.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/gpu/GpuResourcePlugin.java index 25ea19396b7..7a0b4c1a611 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/gpu/GpuResourcePlugin.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/gpu/GpuResourcePlugin.java @@ -20,6 +20,7 @@ import java.util.List; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.exceptions.YarnException; import org.apache.hadoop.yarn.server.nodemanager.Context; @@ -59,6 +60,7 @@ public GpuResourcePlugin(GpuNodeResourceUpdateHandler resourceDiscoverHandler, @Override public void initialize(Context context) throws YarnException { + validateConfig(context.getConf()); this.gpuDiscoverer.initialize(context.getConf(), new NvidiaBinaryHelper()); this.dockerCommandPlugin = @@ -66,6 +68,15 @@ public void initialize(Context context) throws YarnException { context.getConf()); } + private void validateConfig(Configuration conf) { + String executorClass = conf.get(YarnConfiguration.NM_CONTAINER_EXECUTOR); + if (executorClass.equals(YarnConfiguration.DEFAULT_NM_CONTAINER_EXECUTOR) || + executorClass.equals("")) { + LOG.warn("Using GPU plugin with disabled LinuxContainerExecutor" + + " is considered to be unsafe."); + } + } + @Override public ResourceHandler createResourceHandler( Context context, CGroupsHandler cGroupsHandler,