[13/50] [abbrv] hadoop git commit: YARN-5067 Support specifying resources for AM containers in SLS. (Yufei Gu via Haibo Chen)
YARN-5067 Support specifying resources for AM containers in SLS. (Yufei Gu via Haibo Chen) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/147df300 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/147df300 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/147df300 Branch: refs/heads/YARN-5972 Commit: 147df300bf00b5f4ed250426b6ccdd69085466da Parents: 38996fd Author: Haibo Chen Authored: Fri Jun 30 16:50:06 2017 -0700 Committer: Haibo Chen Committed: Fri Jun 30 17:03:44 2017 -0700 -- .../org/apache/hadoop/yarn/sls/SLSRunner.java | 38 +++ .../hadoop/yarn/sls/appmaster/AMSimulator.java | 39 +++- .../yarn/sls/appmaster/MRAMSimulator.java | 11 +++--- .../hadoop/yarn/sls/conf/SLSConfiguration.java | 15 .../yarn/sls/appmaster/TestAMSimulator.java | 4 +- 5 files changed, 68 insertions(+), 39 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/147df300/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java -- diff --git a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java index 02da056..a534f03 100644 --- a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java +++ b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java @@ -406,7 +406,7 @@ public class SLSRunner extends Configured implements Tool { } runNewAM(amType, user, queue, oldAppId, jobStartTime, jobFinishTime, -getTaskContainers(jsonJob), null); +getTaskContainers(jsonJob), null, getAMContainerResource(jsonJob)); } private List getTaskContainers(Map jsonJob) @@ -558,7 +558,8 @@ public class SLSRunner extends Configured implements Tool { // Only supports the default job type currently runNewAM(SLSUtils.DEFAULT_JOB_TYPE, user, jobQueue, oldJobId, -jobStartTimeMS, jobFinishTimeMS, containerList, null); +jobStartTimeMS, jobFinishTimeMS, containerList, null, +getAMContainerResource(null)); } private Resource getDefaultContainerResource() { @@ -676,7 +677,8 @@ public class SLSRunner extends Configured implements Tool { } runNewAM(SLSUtils.DEFAULT_JOB_TYPE, user, jobQueue, oldJobId, -jobStartTimeMS, jobFinishTimeMS, containerList, rr); +jobStartTimeMS, jobFinishTimeMS, containerList, rr, +getAMContainerResource(null)); } } finally { stjp.close(); @@ -684,6 +686,26 @@ public class SLSRunner extends Configured implements Tool { } + private Resource getAMContainerResource(Map jsonJob) { +Resource amContainerResource = +SLSConfiguration.getAMContainerResource(getConf()); + +if (jsonJob == null) { + return amContainerResource; +} + +if (jsonJob.containsKey("am.memory")) { + amContainerResource.setMemorySize( + Long.parseLong(jsonJob.get("am.memory").toString())); +} + +if (jsonJob.containsKey("am.vcores")) { + amContainerResource.setVirtualCores( + Integer.parseInt(jsonJob.get("am.vcores").toString())); +} +return amContainerResource; + } + private void increaseQueueAppNum(String queue) throws YarnException { SchedulerWrapper wrapper = (SchedulerWrapper)rm.getResourceScheduler(); String queueName = wrapper.getRealQueueName(queue); @@ -700,7 +722,7 @@ public class SLSRunner extends Configured implements Tool { private void runNewAM(String jobType, String user, String jobQueue, String oldJobId, long jobStartTimeMS, long jobFinishTimeMS, List containerList, - ReservationSubmissionRequest rr) { + ReservationSubmissionRequest rr, Resource amContainerResource) { AMSimulator amSim = (AMSimulator) ReflectionUtils.newInstance( amClassMap.get(jobType), new Configuration()); @@ -710,9 +732,11 @@ public class SLSRunner extends Configured implements Tool { SLSConfiguration.AM_HEARTBEAT_INTERVAL_MS, SLSConfiguration.AM_HEARTBEAT_INTERVAL_MS_DEFAULT); boolean isTracked = trackedApps.contains(oldJobId); - amSim.init(AM_ID++, heartbeatInterval, containerList, - rm, this, jobStartTimeMS, jobFinishTimeMS, user, jobQueue, - isTracked, oldJobId, rr, runner.getStartTimeMS()); + AM_ID++; + + amSim.init(heartbeatInterval, containerList, rm, this, jobStartTimeMS, + jobFinishTimeMS, user, jobQueue, isTracked, oldJobId, rr, + runner.getStartTimeMS(), amContainerResource); runner.schedule(amSim); maxRuntime = Math.max(maxRuntime, jobFinishTimeMS); numT
[24/50] [abbrv] hadoop git commit: YARN-5067 Support specifying resources for AM containers in SLS. (Yufei Gu via Haibo Chen)
YARN-5067 Support specifying resources for AM containers in SLS. (Yufei Gu via Haibo Chen) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/147df300 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/147df300 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/147df300 Branch: refs/heads/YARN-5734 Commit: 147df300bf00b5f4ed250426b6ccdd69085466da Parents: 38996fd Author: Haibo Chen Authored: Fri Jun 30 16:50:06 2017 -0700 Committer: Haibo Chen Committed: Fri Jun 30 17:03:44 2017 -0700 -- .../org/apache/hadoop/yarn/sls/SLSRunner.java | 38 +++ .../hadoop/yarn/sls/appmaster/AMSimulator.java | 39 +++- .../yarn/sls/appmaster/MRAMSimulator.java | 11 +++--- .../hadoop/yarn/sls/conf/SLSConfiguration.java | 15 .../yarn/sls/appmaster/TestAMSimulator.java | 4 +- 5 files changed, 68 insertions(+), 39 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/147df300/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java -- diff --git a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java index 02da056..a534f03 100644 --- a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java +++ b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java @@ -406,7 +406,7 @@ public class SLSRunner extends Configured implements Tool { } runNewAM(amType, user, queue, oldAppId, jobStartTime, jobFinishTime, -getTaskContainers(jsonJob), null); +getTaskContainers(jsonJob), null, getAMContainerResource(jsonJob)); } private List getTaskContainers(Map jsonJob) @@ -558,7 +558,8 @@ public class SLSRunner extends Configured implements Tool { // Only supports the default job type currently runNewAM(SLSUtils.DEFAULT_JOB_TYPE, user, jobQueue, oldJobId, -jobStartTimeMS, jobFinishTimeMS, containerList, null); +jobStartTimeMS, jobFinishTimeMS, containerList, null, +getAMContainerResource(null)); } private Resource getDefaultContainerResource() { @@ -676,7 +677,8 @@ public class SLSRunner extends Configured implements Tool { } runNewAM(SLSUtils.DEFAULT_JOB_TYPE, user, jobQueue, oldJobId, -jobStartTimeMS, jobFinishTimeMS, containerList, rr); +jobStartTimeMS, jobFinishTimeMS, containerList, rr, +getAMContainerResource(null)); } } finally { stjp.close(); @@ -684,6 +686,26 @@ public class SLSRunner extends Configured implements Tool { } + private Resource getAMContainerResource(Map jsonJob) { +Resource amContainerResource = +SLSConfiguration.getAMContainerResource(getConf()); + +if (jsonJob == null) { + return amContainerResource; +} + +if (jsonJob.containsKey("am.memory")) { + amContainerResource.setMemorySize( + Long.parseLong(jsonJob.get("am.memory").toString())); +} + +if (jsonJob.containsKey("am.vcores")) { + amContainerResource.setVirtualCores( + Integer.parseInt(jsonJob.get("am.vcores").toString())); +} +return amContainerResource; + } + private void increaseQueueAppNum(String queue) throws YarnException { SchedulerWrapper wrapper = (SchedulerWrapper)rm.getResourceScheduler(); String queueName = wrapper.getRealQueueName(queue); @@ -700,7 +722,7 @@ public class SLSRunner extends Configured implements Tool { private void runNewAM(String jobType, String user, String jobQueue, String oldJobId, long jobStartTimeMS, long jobFinishTimeMS, List containerList, - ReservationSubmissionRequest rr) { + ReservationSubmissionRequest rr, Resource amContainerResource) { AMSimulator amSim = (AMSimulator) ReflectionUtils.newInstance( amClassMap.get(jobType), new Configuration()); @@ -710,9 +732,11 @@ public class SLSRunner extends Configured implements Tool { SLSConfiguration.AM_HEARTBEAT_INTERVAL_MS, SLSConfiguration.AM_HEARTBEAT_INTERVAL_MS_DEFAULT); boolean isTracked = trackedApps.contains(oldJobId); - amSim.init(AM_ID++, heartbeatInterval, containerList, - rm, this, jobStartTimeMS, jobFinishTimeMS, user, jobQueue, - isTracked, oldJobId, rr, runner.getStartTimeMS()); + AM_ID++; + + amSim.init(heartbeatInterval, containerList, rm, this, jobStartTimeMS, + jobFinishTimeMS, user, jobQueue, isTracked, oldJobId, rr, + runner.getStartTimeMS(), amContainerResource); runner.schedule(amSim); maxRuntime = Math.max(maxRuntime, jobFinishTimeMS); numT
[31/50] [abbrv] hadoop git commit: YARN-5067 Support specifying resources for AM containers in SLS. (Yufei Gu via Haibo Chen)
YARN-5067 Support specifying resources for AM containers in SLS. (Yufei Gu via Haibo Chen) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/147df300 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/147df300 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/147df300 Branch: refs/heads/YARN-3926 Commit: 147df300bf00b5f4ed250426b6ccdd69085466da Parents: 38996fd Author: Haibo Chen Authored: Fri Jun 30 16:50:06 2017 -0700 Committer: Haibo Chen Committed: Fri Jun 30 17:03:44 2017 -0700 -- .../org/apache/hadoop/yarn/sls/SLSRunner.java | 38 +++ .../hadoop/yarn/sls/appmaster/AMSimulator.java | 39 +++- .../yarn/sls/appmaster/MRAMSimulator.java | 11 +++--- .../hadoop/yarn/sls/conf/SLSConfiguration.java | 15 .../yarn/sls/appmaster/TestAMSimulator.java | 4 +- 5 files changed, 68 insertions(+), 39 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/147df300/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java -- diff --git a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java index 02da056..a534f03 100644 --- a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java +++ b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java @@ -406,7 +406,7 @@ public class SLSRunner extends Configured implements Tool { } runNewAM(amType, user, queue, oldAppId, jobStartTime, jobFinishTime, -getTaskContainers(jsonJob), null); +getTaskContainers(jsonJob), null, getAMContainerResource(jsonJob)); } private List getTaskContainers(Map jsonJob) @@ -558,7 +558,8 @@ public class SLSRunner extends Configured implements Tool { // Only supports the default job type currently runNewAM(SLSUtils.DEFAULT_JOB_TYPE, user, jobQueue, oldJobId, -jobStartTimeMS, jobFinishTimeMS, containerList, null); +jobStartTimeMS, jobFinishTimeMS, containerList, null, +getAMContainerResource(null)); } private Resource getDefaultContainerResource() { @@ -676,7 +677,8 @@ public class SLSRunner extends Configured implements Tool { } runNewAM(SLSUtils.DEFAULT_JOB_TYPE, user, jobQueue, oldJobId, -jobStartTimeMS, jobFinishTimeMS, containerList, rr); +jobStartTimeMS, jobFinishTimeMS, containerList, rr, +getAMContainerResource(null)); } } finally { stjp.close(); @@ -684,6 +686,26 @@ public class SLSRunner extends Configured implements Tool { } + private Resource getAMContainerResource(Map jsonJob) { +Resource amContainerResource = +SLSConfiguration.getAMContainerResource(getConf()); + +if (jsonJob == null) { + return amContainerResource; +} + +if (jsonJob.containsKey("am.memory")) { + amContainerResource.setMemorySize( + Long.parseLong(jsonJob.get("am.memory").toString())); +} + +if (jsonJob.containsKey("am.vcores")) { + amContainerResource.setVirtualCores( + Integer.parseInt(jsonJob.get("am.vcores").toString())); +} +return amContainerResource; + } + private void increaseQueueAppNum(String queue) throws YarnException { SchedulerWrapper wrapper = (SchedulerWrapper)rm.getResourceScheduler(); String queueName = wrapper.getRealQueueName(queue); @@ -700,7 +722,7 @@ public class SLSRunner extends Configured implements Tool { private void runNewAM(String jobType, String user, String jobQueue, String oldJobId, long jobStartTimeMS, long jobFinishTimeMS, List containerList, - ReservationSubmissionRequest rr) { + ReservationSubmissionRequest rr, Resource amContainerResource) { AMSimulator amSim = (AMSimulator) ReflectionUtils.newInstance( amClassMap.get(jobType), new Configuration()); @@ -710,9 +732,11 @@ public class SLSRunner extends Configured implements Tool { SLSConfiguration.AM_HEARTBEAT_INTERVAL_MS, SLSConfiguration.AM_HEARTBEAT_INTERVAL_MS_DEFAULT); boolean isTracked = trackedApps.contains(oldJobId); - amSim.init(AM_ID++, heartbeatInterval, containerList, - rm, this, jobStartTimeMS, jobFinishTimeMS, user, jobQueue, - isTracked, oldJobId, rr, runner.getStartTimeMS()); + AM_ID++; + + amSim.init(heartbeatInterval, containerList, rm, this, jobStartTimeMS, + jobFinishTimeMS, user, jobQueue, isTracked, oldJobId, rr, + runner.getStartTimeMS(), amContainerResource); runner.schedule(amSim); maxRuntime = Math.max(maxRuntime, jobFinishTimeMS); numT
hadoop git commit: YARN-5067 Support specifying resources for AM containers in SLS. (Yufei Gu via Haibo Chen)
Repository: hadoop Updated Branches: refs/heads/trunk 38996fdcf -> 147df300b YARN-5067 Support specifying resources for AM containers in SLS. (Yufei Gu via Haibo Chen) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/147df300 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/147df300 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/147df300 Branch: refs/heads/trunk Commit: 147df300bf00b5f4ed250426b6ccdd69085466da Parents: 38996fd Author: Haibo Chen Authored: Fri Jun 30 16:50:06 2017 -0700 Committer: Haibo Chen Committed: Fri Jun 30 17:03:44 2017 -0700 -- .../org/apache/hadoop/yarn/sls/SLSRunner.java | 38 +++ .../hadoop/yarn/sls/appmaster/AMSimulator.java | 39 +++- .../yarn/sls/appmaster/MRAMSimulator.java | 11 +++--- .../hadoop/yarn/sls/conf/SLSConfiguration.java | 15 .../yarn/sls/appmaster/TestAMSimulator.java | 4 +- 5 files changed, 68 insertions(+), 39 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/147df300/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java -- diff --git a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java index 02da056..a534f03 100644 --- a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java +++ b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/SLSRunner.java @@ -406,7 +406,7 @@ public class SLSRunner extends Configured implements Tool { } runNewAM(amType, user, queue, oldAppId, jobStartTime, jobFinishTime, -getTaskContainers(jsonJob), null); +getTaskContainers(jsonJob), null, getAMContainerResource(jsonJob)); } private List getTaskContainers(Map jsonJob) @@ -558,7 +558,8 @@ public class SLSRunner extends Configured implements Tool { // Only supports the default job type currently runNewAM(SLSUtils.DEFAULT_JOB_TYPE, user, jobQueue, oldJobId, -jobStartTimeMS, jobFinishTimeMS, containerList, null); +jobStartTimeMS, jobFinishTimeMS, containerList, null, +getAMContainerResource(null)); } private Resource getDefaultContainerResource() { @@ -676,7 +677,8 @@ public class SLSRunner extends Configured implements Tool { } runNewAM(SLSUtils.DEFAULT_JOB_TYPE, user, jobQueue, oldJobId, -jobStartTimeMS, jobFinishTimeMS, containerList, rr); +jobStartTimeMS, jobFinishTimeMS, containerList, rr, +getAMContainerResource(null)); } } finally { stjp.close(); @@ -684,6 +686,26 @@ public class SLSRunner extends Configured implements Tool { } + private Resource getAMContainerResource(Map jsonJob) { +Resource amContainerResource = +SLSConfiguration.getAMContainerResource(getConf()); + +if (jsonJob == null) { + return amContainerResource; +} + +if (jsonJob.containsKey("am.memory")) { + amContainerResource.setMemorySize( + Long.parseLong(jsonJob.get("am.memory").toString())); +} + +if (jsonJob.containsKey("am.vcores")) { + amContainerResource.setVirtualCores( + Integer.parseInt(jsonJob.get("am.vcores").toString())); +} +return amContainerResource; + } + private void increaseQueueAppNum(String queue) throws YarnException { SchedulerWrapper wrapper = (SchedulerWrapper)rm.getResourceScheduler(); String queueName = wrapper.getRealQueueName(queue); @@ -700,7 +722,7 @@ public class SLSRunner extends Configured implements Tool { private void runNewAM(String jobType, String user, String jobQueue, String oldJobId, long jobStartTimeMS, long jobFinishTimeMS, List containerList, - ReservationSubmissionRequest rr) { + ReservationSubmissionRequest rr, Resource amContainerResource) { AMSimulator amSim = (AMSimulator) ReflectionUtils.newInstance( amClassMap.get(jobType), new Configuration()); @@ -710,9 +732,11 @@ public class SLSRunner extends Configured implements Tool { SLSConfiguration.AM_HEARTBEAT_INTERVAL_MS, SLSConfiguration.AM_HEARTBEAT_INTERVAL_MS_DEFAULT); boolean isTracked = trackedApps.contains(oldJobId); - amSim.init(AM_ID++, heartbeatInterval, containerList, - rm, this, jobStartTimeMS, jobFinishTimeMS, user, jobQueue, - isTracked, oldJobId, rr, runner.getStartTimeMS()); + AM_ID++; + + amSim.init(heartbeatInterval, containerList, rm, this, jobStartTimeMS, + jobFinishTimeMS, user, jobQueue, isTracked, oldJobId, rr, + runner.getStartTimeMS(), amContainerResource); runner.schedule(a