Skip to content

Commit 44afe11

Browse files
YARN-9419. Log a warning if GPU isolation is enabled but LinuxContainerExecutor is disabled. Contribued by Andras Gyori
1 parent c734d69 commit 44afe11

File tree

1 file changed

+15
-0
lines changed
  • hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/gpu

1 file changed

+15
-0
lines changed

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@
2020

2121
import java.util.List;
2222

23+
import org.apache.hadoop.conf.Configuration;
2324
import org.apache.hadoop.yarn.conf.YarnConfiguration;
2425
import org.apache.hadoop.yarn.exceptions.YarnException;
26+
import org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor;
2527
import org.apache.hadoop.yarn.server.nodemanager.Context;
28+
import org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor;
2629
import org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperationExecutor;
2730
import org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.resources.CGroupsHandler;
2831
import org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.resources.ResourceHandler;
@@ -59,13 +62,25 @@ public GpuResourcePlugin(GpuNodeResourceUpdateHandler resourceDiscoverHandler,
5962

6063
@Override
6164
public void initialize(Context context) throws YarnException {
65+
validateExecutorConfig(context.getConf());
6266
this.gpuDiscoverer.initialize(context.getConf(),
6367
new NvidiaBinaryHelper());
6468
this.dockerCommandPlugin =
6569
GpuDockerCommandPluginFactory.createGpuDockerCommandPlugin(
6670
context.getConf());
6771
}
6872

73+
private void validateExecutorConfig(Configuration conf) {
74+
Class<? extends ContainerExecutor> executorClass = conf.getClass(
75+
YarnConfiguration.NM_CONTAINER_EXECUTOR, DefaultContainerExecutor.class,
76+
ContainerExecutor.class);
77+
78+
if (executorClass.equals(DefaultContainerExecutor.class)) {
79+
LOG.warn("Using GPU plugin with disabled LinuxContainerExecutor" +
80+
" is considered to be unsafe.");
81+
}
82+
}
83+
6984
@Override
7085
public ResourceHandler createResourceHandler(
7186
Context context, CGroupsHandler cGroupsHandler,

0 commit comments

Comments
 (0)