[ https://issues.apache.org/jira/browse/YARN-11196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17584665#comment-17584665 ]
ASF GitHub Bot commented on YARN-11196: --------------------------------------- PrabhuJoseph commented on code in PR #4742: URL: https://github.com/apache/hadoop/pull/4742#discussion_r954575871 ########## hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java: ########## @@ -1040,4 +1080,92 @@ public void updateYarnSysFS(Context ctx, String user, String appId, String spec) throws IOException { throw new ServiceStateException("Implementation unavailable"); } + + @Override + public int reacquireContainer(ContainerReacquisitionContext ctx) + throws IOException, InterruptedException { + try { + if (numaResourceAllocator != null) { + numaResourceAllocator.recoverNumaResource(ctx.getContainerId()); + } + return super.reacquireContainer(ctx); + } finally { + postComplete(ctx.getContainerId()); + } + } + + /** + * clean up and release of resources. + * + * @param containerId containerId of running container + */ + public void postComplete(final ContainerId containerId) { + if (numaResourceAllocator != null) { + try { + numaResourceAllocator.releaseNumaResource(containerId); + } catch (ResourceHandlerException e) { + LOG.warn("NumaResource release failed for " + + "containerId: {}. Exception: ", containerId, e); + } + } + } + + /** + * @param resourceAllocation NonNull NumaResourceAllocation object reference + * @return Array of numa specific commands + */ + String[] getNumaCommands(NumaResourceAllocation resourceAllocation) { + String[] numaCommand = new String[3]; + numaCommand[0] = this.getConf().get(YarnConfiguration.NM_NUMA_AWARENESS_NUMACTL_CMD, + YarnConfiguration.DEFAULT_NM_NUMA_AWARENESS_NUMACTL_CMD); + numaCommand[1] = "--interleave=" + String.join(",", resourceAllocation.getMemNodes()); + numaCommand[2] = "--cpunodebind=" + String.join(",", resourceAllocation.getCpuNodes()); + return numaCommand; + + } + + /** + * @param firstStringArray Array of String + * @param secondStringArray Array of String + * @return combined array of string where first elements are from firstStringArray + * and later are the elements from secondStringArray + */ + String[] concatStringCommands(String[] firstStringArray, String[] secondStringArray) { Review Comment: The Numa Commands has to be in prefix. > NUMA Awareness support in DefaultContainerExecutor > -------------------------------------------------- > > Key: YARN-11196 > URL: https://issues.apache.org/jira/browse/YARN-11196 > Project: Hadoop YARN > Issue Type: Improvement > Components: nodemanager > Affects Versions: 3.3.3 > Reporter: Prabhu Joseph > Assignee: Samrat Deb > Priority: Major > Labels: pull-request-available > > [YARN-5764|https://issues.apache.org/jira/browse/YARN-5764] has added support > of NUMA Awareness for Containers launched through LinuxContainerExecutor. > This feature is useful to have in DefaultContainerExecutor as well. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org