diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java index dbe257d..7bbc513 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java @@ -241,8 +241,8 @@ public void startLocalizer(LocalizerStartContext ctx) Integer.toString(Commands.INITIALIZE_CONTAINER.getValue()), appId, nmPrivateContainerTokensPath.toUri().getPath().toString(), - StringUtils.join(",", localDirs), - StringUtils.join(",", logDirs))); + StringUtils.join("%", localDirs), + StringUtils.join("%", logDirs))); File jvm = // use same jvm as parent new File(new File(System.getProperty("java.home"), "bin"), "java"); @@ -363,8 +363,8 @@ public int launchContainer(ContainerStartContext ctx) throws IOException { nmPrivateContainerScriptPath.toUri().getPath().toString(), nmPrivateTokensPath.toUri().getPath().toString(), pidFilePath.toString(), - StringUtils.join(",", localDirs), - StringUtils.join(",", logDirs), + StringUtils.join("%", localDirs), + StringUtils.join("%", logDirs), resourcesOptions)); if (tcCommandFile != null) { diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/util/CgroupsLCEResourcesHandler.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/util/CgroupsLCEResourcesHandler.java index b38e559..bef2ada 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/util/CgroupsLCEResourcesHandler.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/util/CgroupsLCEResourcesHandler.java @@ -409,10 +409,10 @@ public String getResourcesOption(ContainerId containerId) { if (isCpuWeightEnabled()) { sb.append(pathForCgroup(CONTROLLER_CPU, containerName) + "/tasks"); - sb.append(","); + sb.append("%"); } - if (sb.charAt(sb.length() - 1) == ',') { + if (sb.charAt(sb.length() - 1) == '%') { sb.deleteCharAt(sb.length() - 1); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/configuration.c hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/configuration.c index 15b53ae..51adc97 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/configuration.c +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/configuration.c @@ -283,7 +283,7 @@ char * get_value(const char* key) { /** * Function to return an array of values for a key. - * Value delimiter is assumed to be a comma. + * Value delimiter is assumed to be a '%'. */ char ** get_values(const char * key) { char *value = get_value(key); @@ -291,7 +291,7 @@ char ** get_values(const char * key) { } /** - * Extracts array of values from the comma separated list of values. + * Extracts array of values from the '%' separated list of values. */ char ** extract_values(char *value) { char ** toPass = NULL; @@ -303,14 +303,14 @@ char ** extract_values(char *value) { //first allocate any array of 10 if(value != NULL) { toPass = (char **) malloc(sizeof(char *) * toPassSize); - tempTok = strtok_r((char *)value, ",", &tempstr); + tempTok = strtok_r((char *)value, "%", &tempstr); while (tempTok != NULL) { toPass[size++] = tempTok; if(size == toPassSize) { toPassSize += MAX_SIZE; toPass = (char **) realloc(toPass,(sizeof(char *) * toPassSize)); } - tempTok = strtok_r(NULL, ",", &tempstr); + tempTok = strtok_r(NULL, "%", &tempstr); } } if (toPass != NULL) { diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/test/test-container-executor.c hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/test/test-container-executor.c index be6cc49..13604f0 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/test/test-container-executor.c +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/test/test-container-executor.c @@ -30,8 +30,8 @@ #define TEST_ROOT "/tmp/test-container-executor" #define DONT_TOUCH_FILE "dont-touch-me" -#define NM_LOCAL_DIRS TEST_ROOT "/local-1," TEST_ROOT "/local-2," \ - TEST_ROOT "/local-3," TEST_ROOT "/local-4," TEST_ROOT "/local-5" +#define NM_LOCAL_DIRS TEST_ROOT "/local-1%" TEST_ROOT "/local-2%" \ + TEST_ROOT "/local-3%" TEST_ROOT "/local-4%" TEST_ROOT "/local-5" #define NM_LOG_DIRS TEST_ROOT "/logs/userlogs" #define ARRAY_SIZE 1000