Chuan Liu updated YARN-2190:

    Attachment: YARN-2190-prototype.patch

Upload a proof-of-concept patch. Main changes:

- Modified "winutils task create" that can take CPU and memory limits from 
command line and add the limits to the job objects for the task. 

- Create a WindowsContainerExecutor that inherits DefaultContainerExecutor. The 
new executor overrides the getRunCommand method to add memory and CPU  to the 
"winutils task" to supplement additional CPU and memory limit.

- Make getRunCommand non-static because static method cannot be overridden. 

The remaining work:

- Add unit tests.

- Because the API for CPU requires Windows 8, I updated the Visual Studio build 
files. If we want to keep the re-requisite of Windows SDK 7.1, there will some 
work need to be done. 

> Provide a Windows container executor that can limit memory and CPU
> ------------------------------------------------------------------
>                 Key: YARN-2190
>                 URL: https://issues.apache.org/jira/browse/YARN-2190
>             Project: Hadoop YARN
>          Issue Type: New Feature
>          Components: nodemanager
>            Reporter: Chuan Liu
>         Attachments: YARN-2190-prototype.patch
> Yarn default container executor on Windows does not set the resource limit on 
> the containers currently. The memory limit is enforced by a separate 
> monitoring thread. The container implementation on Windows uses Job Object 
> right now. The latest Windows (8 or later) API allows CPU and memory limits 
> on the job objects. We want to create a Windows container executor that sets 
> the limits on job objects thus provides resource enforcement at OS level.
> http://msdn.microsoft.com/en-us/library/windows/desktop/ms686216(v=vs.85).aspx

This message was sent by Atlassian JIRA

Reply via email to