|
20 | 20 |
|
21 | 21 | import java.util.List; |
22 | 22 |
|
| 23 | +import org.apache.hadoop.conf.Configuration; |
23 | 24 | import org.apache.hadoop.yarn.conf.YarnConfiguration; |
24 | 25 | import org.apache.hadoop.yarn.exceptions.YarnException; |
| 26 | +import org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor; |
25 | 27 | import org.apache.hadoop.yarn.server.nodemanager.Context; |
| 28 | +import org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor; |
26 | 29 | import org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperationExecutor; |
27 | 30 | import org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.resources.CGroupsHandler; |
28 | 31 | import org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.resources.ResourceHandler; |
@@ -59,13 +62,25 @@ public GpuResourcePlugin(GpuNodeResourceUpdateHandler resourceDiscoverHandler, |
59 | 62 |
|
60 | 63 | @Override |
61 | 64 | public void initialize(Context context) throws YarnException { |
| 65 | + validateExecutorConfig(context.getConf()); |
62 | 66 | this.gpuDiscoverer.initialize(context.getConf(), |
63 | 67 | new NvidiaBinaryHelper()); |
64 | 68 | this.dockerCommandPlugin = |
65 | 69 | GpuDockerCommandPluginFactory.createGpuDockerCommandPlugin( |
66 | 70 | context.getConf()); |
67 | 71 | } |
68 | 72 |
|
| 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 | + |
69 | 84 | @Override |
70 | 85 | public ResourceHandler createResourceHandler( |
71 | 86 | Context context, CGroupsHandler cGroupsHandler, |
|
0 commit comments