[09/18] hadoop git commit: YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung
YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0b546420 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0b546420 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0b546420 Branch: refs/heads/branch-3.0 Commit: 0b546420da3c7ae708d361ddf52a3cf8d24494b9 Parents: 793476e Author: XuanAuthored: Tue Aug 1 08:48:04 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:55 2017 -0700 -- .../server/resourcemanager/AdminService.java| 12 +- .../scheduler/MutableConfScheduler.java | 12 -- .../scheduler/MutableConfigurationProvider.java | 4 +++- .../scheduler/capacity/CapacityScheduler.java | 9 ++-- .../conf/MutableCSConfigurationProvider.java| 11 +- .../resourcemanager/TestRMAdminService.java | 23 .../TestMutableCSConfigurationProvider.java | 14 +++- 7 files changed, 67 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/0b546420/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java index 3457ae3..fd9e849 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java @@ -29,6 +29,7 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.ha.HAServiceProtocol; @@ -92,6 +93,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.reservation.ReservationSyst import org.apache.hadoop.yarn.server.resourcemanager.resource.DynamicResourceConfiguration; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeResourceUpdateEvent; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler; import org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider; import com.google.common.annotations.VisibleForTesting; @@ -384,6 +387,12 @@ public class AdminService extends CompositeService implements RefreshQueuesResponse response = recordFactory.newRecordInstance(RefreshQueuesResponse.class); try { + ResourceScheduler scheduler = rm.getRMContext().getScheduler(); + if (scheduler instanceof MutableConfScheduler + && ((MutableConfScheduler) scheduler).isConfigurationMutable()) { +throw new IOException("Scheduler configuration is mutable. " + +operation + " is not allowed in this scenario."); + } refreshQueues(); RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); @@ -393,7 +402,8 @@ public class AdminService extends CompositeService implements } } - private void refreshQueues() throws IOException, YarnException { + @Private + public void refreshQueues() throws IOException, YarnException { rm.getRMContext().getScheduler().reinitialize(getConfig(), this.rm.getRMContext()); // refresh the reservation system http://git-wip-us.apache.org/repos/asf/hadoop/blob/0b546420/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java
[09/18] hadoop git commit: YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung
YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3a31c388 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3a31c388 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3a31c388 Branch: refs/heads/branch-2 Commit: 3a31c38885965c9f906464904981d15ac8db9bb1 Parents: cd58f5d Author: XuanAuthored: Tue Aug 1 08:48:04 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../server/resourcemanager/AdminService.java| 12 +- .../scheduler/MutableConfScheduler.java | 12 -- .../scheduler/MutableConfigurationProvider.java | 4 +++- .../scheduler/capacity/CapacityScheduler.java | 9 ++-- .../conf/MutableCSConfigurationProvider.java| 11 +- .../resourcemanager/TestRMAdminService.java | 23 .../TestMutableCSConfigurationProvider.java | 14 +++- 7 files changed, 67 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a31c388/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java index 3457ae3..fd9e849 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java @@ -29,6 +29,7 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.ha.HAServiceProtocol; @@ -92,6 +93,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.reservation.ReservationSyst import org.apache.hadoop.yarn.server.resourcemanager.resource.DynamicResourceConfiguration; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeResourceUpdateEvent; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler; import org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider; import com.google.common.annotations.VisibleForTesting; @@ -384,6 +387,12 @@ public class AdminService extends CompositeService implements RefreshQueuesResponse response = recordFactory.newRecordInstance(RefreshQueuesResponse.class); try { + ResourceScheduler scheduler = rm.getRMContext().getScheduler(); + if (scheduler instanceof MutableConfScheduler + && ((MutableConfScheduler) scheduler).isConfigurationMutable()) { +throw new IOException("Scheduler configuration is mutable. " + +operation + " is not allowed in this scenario."); + } refreshQueues(); RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); @@ -393,7 +402,8 @@ public class AdminService extends CompositeService implements } } - private void refreshQueues() throws IOException, YarnException { + @Private + public void refreshQueues() throws IOException, YarnException { rm.getRMContext().getScheduler().reinitialize(getConfig(), this.rm.getRMContext()); // refresh the reservation system http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a31c388/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java