Repository: hadoop Updated Branches: refs/heads/trunk 58b97c79e -> 2bb647bb9
YARN-8278. DistributedScheduling is not working in HA. Contributed by Bibin A Chundatt. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2bb647bb Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2bb647bb Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2bb647bb Branch: refs/heads/trunk Commit: 2bb647bb91439e82cf7298e963bb5f7f80bbc3cb Parents: 58b97c7 Author: Weiwei Yang <w...@apache.org> Authored: Tue May 15 17:28:19 2018 +0800 Committer: Weiwei Yang <w...@apache.org> Committed: Tue May 15 17:28:19 2018 +0800 ---------------------------------------------------------------------- .../hadoop/yarn/server/api/ServerRMProxy.java | 11 +++-- .../yarn/server/api/TestServerRMProxy.java | 52 ++++++++++++++++++++ 2 files changed, 60 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2bb647bb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/ServerRMProxy.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/ServerRMProxy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/ServerRMProxy.java index cd92415..ee9956f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/ServerRMProxy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/ServerRMProxy.java @@ -34,6 +34,11 @@ public class ServerRMProxy<T> extends RMProxy<T> { private static final Logger LOG = LoggerFactory.getLogger(ServerRMProxy.class); + private interface ServerRMProtocols + extends DistributedSchedulingAMProtocol, ResourceTracker { + //Add nothing + } + private ServerRMProxy() { super(); } @@ -95,8 +100,8 @@ public class ServerRMProxy<T> extends RMProxy<T> { @InterfaceAudience.Private @Override public void checkAllowedProtocols(Class<?> protocol) { - Preconditions.checkArgument( - protocol.isAssignableFrom(ResourceTracker.class), - "ResourceManager does not support this protocol"); + Preconditions + .checkArgument(protocol.isAssignableFrom(ServerRMProtocols.class), + "ResourceManager does not support this protocol"); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/2bb647bb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/api/TestServerRMProxy.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/api/TestServerRMProxy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/api/TestServerRMProxy.java new file mode 100644 index 0000000..e620207 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/api/TestServerRMProxy.java @@ -0,0 +1,52 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.server.api; + +import org.apache.hadoop.yarn.conf.HAUtil; +import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.junit.Assert; +import org.junit.Test; + +/** + * Test ServerRMProxy. + */ +public class TestServerRMProxy { + + @Test + public void testDistributedProtocol() { + + YarnConfiguration conf = new YarnConfiguration(); + try { + ServerRMProxy.createRMProxy(conf, DistributedSchedulingAMProtocol.class); + } catch (Exception e) { + Assert.fail("DistributedSchedulingAMProtocol fail in non HA"); + } + + // HA is enabled + conf.setBoolean(YarnConfiguration.RM_HA_ENABLED, true); + conf.set(YarnConfiguration.RM_HA_IDS, "rm1,rm2"); + conf.set(HAUtil.addSuffix(YarnConfiguration.RM_HOSTNAME, "rm1"), "0.0.0.0"); + conf.set(HAUtil.addSuffix(YarnConfiguration.RM_HOSTNAME, "rm2"), "0.0.0.0"); + try { + ServerRMProxy.createRMProxy(conf, DistributedSchedulingAMProtocol.class); + } catch (Exception e) { + Assert.fail("DistributedSchedulingAMProtocol fail in HA"); + } + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org