YARN-2752. Made ContainerExecutor append "nice -n" arg only when priority adjustment flag is set. Contributed by Xuan Gong.
This commit is contained in:
parent
4ca67c09fc
commit
e06c23a6c9
|
@ -826,6 +826,9 @@ Release 2.6.0 - UNRELEASED
|
|||
of races between the launch and the stop-container call and when root
|
||||
processes crash. (Billie Rinaldi via vinodkv)
|
||||
|
||||
YARN-2752. Made ContainerExecutor append "nice -n" arg only when priority
|
||||
adjustment flag is set. (Xuan Gong via zjshen)
|
||||
|
||||
Release 2.5.1 - 2014-09-05
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -276,19 +276,23 @@ public abstract class ContainerExecutor implements Configurable {
|
|||
}
|
||||
|
||||
/**
|
||||
* Return a command to execute the given command in OS shell.
|
||||
* On Windows, the passed in groupId can be used to launch
|
||||
* and associate the given groupId in a process group. On
|
||||
* non-Windows, groupId is ignored.
|
||||
* Return a command to execute the given command in OS shell.
|
||||
* On Windows, the passed in groupId can be used to launch
|
||||
* and associate the given groupId in a process group. On
|
||||
* non-Windows, groupId is ignored.
|
||||
*/
|
||||
protected String[] getRunCommand(String command, String groupId,
|
||||
String userName, Path pidFile, Configuration conf) {
|
||||
String userName, Path pidFile, Configuration conf) {
|
||||
boolean containerSchedPriorityIsSet = false;
|
||||
int containerSchedPriorityAdjustment =
|
||||
YarnConfiguration.DEFAULT_NM_CONTAINER_EXECUTOR_SCHED_PRIORITY;
|
||||
|
||||
if (conf.get(YarnConfiguration.NM_CONTAINER_EXECUTOR_SCHED_PRIORITY) !=
|
||||
null) {
|
||||
containerSchedPriorityIsSet = true;
|
||||
containerSchedPriorityAdjustment = conf
|
||||
.getInt(YarnConfiguration.NM_CONTAINER_EXECUTOR_SCHED_PRIORITY, 0);
|
||||
.getInt(YarnConfiguration.NM_CONTAINER_EXECUTOR_SCHED_PRIORITY,
|
||||
YarnConfiguration.DEFAULT_NM_CONTAINER_EXECUTOR_SCHED_PRIORITY);
|
||||
}
|
||||
|
||||
if (Shell.WINDOWS) {
|
||||
|
@ -296,11 +300,14 @@ public abstract class ContainerExecutor implements Configurable {
|
|||
"cmd /c " + command };
|
||||
} else {
|
||||
List<String> retCommand = new ArrayList<String>();
|
||||
retCommand.addAll(Arrays.asList("nice", "-n",
|
||||
Integer.toString(containerSchedPriorityAdjustment)));
|
||||
if (containerSchedPriorityIsSet) {
|
||||
retCommand.addAll(Arrays.asList("nice", "-n",
|
||||
Integer.toString(containerSchedPriorityAdjustment)));
|
||||
}
|
||||
retCommand.addAll(Arrays.asList("bash", command));
|
||||
return retCommand.toArray(new String[retCommand.size()]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -34,7 +34,7 @@ public class TestContainerExecutor {
|
|||
public void testRunCommandNoPriority() throws Exception {
|
||||
Configuration conf = new Configuration();
|
||||
String[] command = containerExecutor.getRunCommand("echo", "group1", "user", null, conf);
|
||||
assertTrue("first command should be the run command for the platform " + command[0],
|
||||
assertTrue("first command should be the run command for the platform",
|
||||
command[0].equals(Shell.WINUTILS) || command[0].equals("bash"));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue