Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id E07E0200C89 for ; Sat, 3 Jun 2017 23:07:56 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id DF2C9160BCD; Sat, 3 Jun 2017 21:07:56 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id B1D06160BB5 for ; Sat, 3 Jun 2017 23:07:55 +0200 (CEST) Received: (qmail 55432 invoked by uid 500); 3 Jun 2017 21:07:54 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 55423 invoked by uid 99); 3 Jun 2017 21:07:54 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 03 Jun 2017 21:07:54 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 6490ADFFAB; Sat, 3 Jun 2017 21:07:54 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: shv@apache.org To: common-commits@hadoop.apache.org Date: Sat, 03 Jun 2017 21:07:54 -0000 Message-Id: <945cb4365c964821bb6d34897fe083b4@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/2] hadoop git commit: YARN-4140. RM container allocation delayed incase of app submitted to Nodelabel partition. (Bibin A Chundatt via wangda) Backport by Jonathan Hung. archived-at: Sat, 03 Jun 2017 21:07:57 -0000 Repository: hadoop Updated Branches: refs/heads/branch-2.7 4f2ff8540 -> 647077f3f YARN-4140. RM container allocation delayed incase of app submitted to Nodelabel partition. (Bibin A Chundatt via wangda) Backport by Jonathan Hung. (cherry picked from commit def374e666ed0c1d665aeb1b7307e09769448138) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/12f819a6 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/12f819a6 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/12f819a6 Branch: refs/heads/branch-2.7 Commit: 12f819a6b7467b7d4b1d648ea31ab9bfb8d35ddd Parents: 4f2ff85 Author: Wangda Tan Authored: Fri Oct 9 16:38:59 2015 -0700 Committer: Konstantin V Shvachko Committed: Sat Jun 3 13:59:36 2017 -0700 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 4 + .../hadoop/yarn/server/utils/BuilderUtils.java | 12 + .../scheduler/AppSchedulingInfo.java | 31 +++ .../resourcemanager/TestFifoScheduler.java | 7 +- .../TestNodeLabelContainerAllocation.java | 218 +++++++++++++++++++ .../scheduler/fair/FairSchedulerTestBase.java | 2 + 6 files changed, 272 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/12f819a6/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index df99dd2..5c472e5 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -105,6 +105,10 @@ Release 2.7.4 - UNRELEASED YARN-4925. ContainerRequest in AMRMClient, application should be able to specify nodes/racks together with nodeLabelExpression. Bibin A Chundatt + YARN-4140. RM container allocation delayed incase of app submitted to + Nodelabel partition. (Bibin A Chundatt via wangda) + Backport by Jonathan Hung. + Release 2.7.3 - 2016-08-25 INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/12f819a6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/BuilderUtils.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/BuilderUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/BuilderUtils.java index 68d4ef9..c366e94 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/BuilderUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/BuilderUtils.java @@ -306,6 +306,18 @@ public class BuilderUtils { return request; } + public static ResourceRequest newResourceRequest(Priority priority, + String hostName, Resource capability, int numContainers, String label) { + ResourceRequest request = + recordFactory.newRecordInstance(ResourceRequest.class); + request.setPriority(priority); + request.setResourceName(hostName); + request.setCapability(capability); + request.setNumContainers(numContainers); + request.setNodeLabelExpression(label); + return request; + } + public static ResourceRequest newResourceRequest(ResourceRequest r) { ResourceRequest request = recordFactory .newRecordInstance(ResourceRequest.class); http://git-wip-us.apache.org/repos/asf/hadoop/blob/12f819a6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.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/AppSchedulingInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.java index 7cd0d50..e6ba006 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.java @@ -155,6 +155,30 @@ public class AppSchedulingInfo { priorities.add(priority); activeUsersManager.activateApplication(user, applicationId); } + ResourceRequest previousAnyRequest = + getResourceRequest(priority, resourceName); + + // When there is change in ANY request label expression, we should + // update label for all resource requests already added of same + // priority as ANY resource request. + if ((null == previousAnyRequest) + || isRequestLabelChanged(previousAnyRequest, request)) { + Map resourceRequest = + getResourceRequests(priority); + if (resourceRequest != null) { + for (ResourceRequest r : resourceRequest.values()) { + if (!r.getResourceName().equals(ResourceRequest.ANY)) { + r.setNodeLabelExpression(request.getNodeLabelExpression()); + } + } + } + } + } else { + ResourceRequest anyRequest = + getResourceRequest(priority, ResourceRequest.ANY); + if (anyRequest != null) { + request.setNodeLabelExpression(anyRequest.getNodeLabelExpression()); + } } Map asks = this.requests.get(priority); @@ -194,6 +218,13 @@ public class AppSchedulingInfo { } } + private boolean isRequestLabelChanged(ResourceRequest requestOne, + ResourceRequest requestTwo) { + String requestOneLabelExp = requestOne.getNodeLabelExpression(); + String requestTwoLabelExp = requestTwo.getNodeLabelExpression(); + return (!(requestOneLabelExp.equals(requestTwoLabelExp))); + } + /** * The ApplicationMaster is updating the blacklist * http://git-wip-us.apache.org/repos/asf/hadoop/blob/12f819a6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestFifoScheduler.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestFifoScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestFifoScheduler.java index a128d5f..17191d3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestFifoScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestFifoScheduler.java @@ -44,6 +44,7 @@ import org.apache.hadoop.yarn.api.records.ResourceRequest; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.exceptions.YarnRuntimeException; import org.apache.hadoop.yarn.server.api.protocolrecords.UpdateNodeResourceRequest; +import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt; @@ -397,9 +398,11 @@ public class TestFifoScheduler { // Ask for a 1 GB container for app 1 List ask1 = new ArrayList(); ask1.add(BuilderUtils.newResourceRequest(BuilderUtils.newPriority(0), - "rack1", BuilderUtils.newResource(GB, 1), 1)); + "rack1", BuilderUtils.newResource(GB, 1), 1, + RMNodeLabelsManager.NO_LABEL)); ask1.add(BuilderUtils.newResourceRequest(BuilderUtils.newPriority(0), - ResourceRequest.ANY, BuilderUtils.newResource(GB, 1), 1)); + ResourceRequest.ANY, BuilderUtils.newResource(GB, 1), 1, + RMNodeLabelsManager.NO_LABEL)); fs.allocate(appAttemptId1, ask1, emptyId, Collections.singletonList(host_1_0), null); // Trigger container assignment http://git-wip-us.apache.org/repos/asf/hadoop/blob/12f819a6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestNodeLabelContainerAllocation.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestNodeLabelContainerAllocation.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestNodeLabelContainerAllocation.java new file mode 100644 index 0000000..7a0b41a --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestNodeLabelContainerAllocation.java @@ -0,0 +1,218 @@ +/** + * 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.resourcemanager.scheduler.capacity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.yarn.api.records.ContainerId; +import org.apache.hadoop.yarn.api.records.NodeId; +import org.apache.hadoop.yarn.api.records.ResourceRequest; +import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.apache.hadoop.yarn.server.resourcemanager.MockAM; +import org.apache.hadoop.yarn.server.resourcemanager.MockNM; +import org.apache.hadoop.yarn.server.resourcemanager.MockRM; +import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager; +import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; +import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Sets; + +public class TestNodeLabelContainerAllocation { + private final int GB = 1024; + + private YarnConfiguration conf; + + RMNodeLabelsManager mgr; + + @Before + public void setUp() throws Exception { + conf = new YarnConfiguration(); + conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class, + ResourceScheduler.class); + mgr = new NullRMNodeLabelsManager(); + mgr.init(conf); + } + + private Configuration getConfigurationWithQueueLabels(Configuration config) { + CapacitySchedulerConfiguration conf = + new CapacitySchedulerConfiguration(config); + + // Define top-level queues + conf.setQueues(CapacitySchedulerConfiguration.ROOT, new String[] {"a", "b", "c"}); + conf.setCapacityByLabel(CapacitySchedulerConfiguration.ROOT, "x", 100); + conf.setCapacityByLabel(CapacitySchedulerConfiguration.ROOT, "y", 100); + conf.setCapacityByLabel(CapacitySchedulerConfiguration.ROOT, "z", 100); + + final String A = CapacitySchedulerConfiguration.ROOT + ".a"; + conf.setCapacity(A, 10); + conf.setMaximumCapacity(A, 15); + conf.setAccessibleNodeLabels(A, toSet("x")); + conf.setCapacityByLabel(A, "x", 100); + + final String B = CapacitySchedulerConfiguration.ROOT + ".b"; + conf.setCapacity(B, 20); + conf.setAccessibleNodeLabels(B, toSet("y", "z")); + conf.setCapacityByLabel(B, "y", 100); + conf.setCapacityByLabel(B, "z", 100); + + final String C = CapacitySchedulerConfiguration.ROOT + ".c"; + conf.setCapacity(C, 70); + conf.setMaximumCapacity(C, 70); + conf.setAccessibleNodeLabels(C, RMNodeLabelsManager.EMPTY_STRING_SET); + + // Define 2nd-level queues + final String A1 = A + ".a1"; + conf.setQueues(A, new String[] {"a1"}); + conf.setCapacity(A1, 100); + conf.setMaximumCapacity(A1, 100); + conf.setCapacityByLabel(A1, "x", 100); + + final String B1 = B + ".b1"; + conf.setQueues(B, new String[] {"b1"}); + conf.setCapacity(B1, 100); + conf.setMaximumCapacity(B1, 100); + conf.setCapacityByLabel(B1, "y", 100); + conf.setCapacityByLabel(B1, "z", 100); + + final String C1 = C + ".c1"; + conf.setQueues(C, new String[] {"c1"}); + conf.setCapacity(C1, 100); + conf.setMaximumCapacity(C1, 100); + + return conf; + } + + @SuppressWarnings("unchecked") + private Set toSet(E... elements) { + Set set = Sets.newHashSet(elements); + return set; + } + + /** + * JIRA YARN-4140, In Resource request set node label will be set only on ANY + * reqest. RACK/NODE local and default requests label expression need to be + * updated. This testcase is to verify the label expression is getting changed + * based on ANY requests. + * + * @throws Exception + */ + @Test + public void testResourceRequestUpdateNodePartitions() throws Exception { + // set node -> label + mgr.addToCluserNodeLabels(ImmutableSet.of("x", "y", "z")); + mgr.addLabelsToNode(ImmutableMap.of(NodeId.newInstance("h1", 0), toSet("y"))); + // inject node label manager + MockRM rm1 = new MockRM(getConfigurationWithQueueLabels(conf)) { + @Override + public RMNodeLabelsManager createNodeLabelManager() { + return mgr; + } + }; + rm1.getRMContext().setNodeLabelManager(mgr); + rm1.start(); + MockNM nm2 = rm1.registerNode("h2:1234", 40 * GB); // label = y + // launch an app to queue b1 (label = y), AM container should be launched in + // nm2 + RMApp app1 = rm1.submitApp(1 * GB, "app", "user", null, "b1"); + MockAM am1 = MockRM.launchAndRegisterAM(app1, rm1, nm2); + // Creating request set when request before ANY is not having label and any + // is having label + List resourceRequest = new ArrayList(); + resourceRequest.add(am1.createResourceReq("/default-rack", 1024, 3, 1, + RMNodeLabelsManager.NO_LABEL)); + resourceRequest.add(am1.createResourceReq("*", 1024, 3, 5, "y")); + resourceRequest.add(am1.createResourceReq("h1:1234", 1024, 3, 2, + RMNodeLabelsManager.NO_LABEL)); + resourceRequest.add(am1.createResourceReq("*", 1024, 2, 3, "y")); + resourceRequest.add(am1.createResourceReq("h2:1234", 1024, 2, 4, null)); + resourceRequest.add(am1.createResourceReq("*", 1024, 4, 3, null)); + resourceRequest.add(am1.createResourceReq("h2:1234", 1024, 4, 4, null)); + am1.allocate(resourceRequest, new ArrayList()); + CapacityScheduler cs = + (CapacityScheduler) rm1.getRMContext().getScheduler(); + FiCaSchedulerApp app = + cs.getApplicationAttempt(am1.getApplicationAttemptId()); + List allResourceRequests = + app.getAppSchedulingInfo().getAllResourceRequests(); + for (ResourceRequest changeReq : allResourceRequests) { + if (changeReq.getPriority().getPriority() == 2 + || changeReq.getPriority().getPriority() == 3) { + Assert.assertEquals("Expected label y", "y", + changeReq.getNodeLabelExpression()); + } else if (changeReq.getPriority().getPriority() == 4) { + Assert.assertEquals("Expected label EMPTY", + RMNodeLabelsManager.NO_LABEL, changeReq.getNodeLabelExpression()); + } + } + + // Previous any request was Y trying to update with z and the + // request before ANY label is null + List newReq = new ArrayList(); + newReq.add(am1.createResourceReq("h2:1234", 1024, 3, 4, null)); + newReq.add(am1.createResourceReq("*", 1024, 3, 5, "z")); + newReq.add(am1.createResourceReq("h1:1234", 1024, 3, 4, null)); + newReq.add(am1.createResourceReq("*", 1024, 4, 5, "z")); + am1.allocate(newReq, new ArrayList()); + allResourceRequests = app.getAppSchedulingInfo().getAllResourceRequests(); + for (ResourceRequest changeReq : allResourceRequests) { + if (changeReq.getPriority().getPriority() == 3 + || changeReq.getPriority().getPriority() == 4) { + Assert.assertEquals("Expected label z", "z", + changeReq.getNodeLabelExpression()); + } else if (changeReq.getPriority().getPriority() == 2) { + Assert.assertEquals("Expected label y", "y", + changeReq.getNodeLabelExpression()); + } + } + // Request before ANY and ANY request is set as NULL. Request should be set + // with Empty Label + List resourceRequest1 = new ArrayList(); + resourceRequest1.add(am1.createResourceReq("/default-rack", 1024, 3, 1, + null)); + resourceRequest1.add(am1.createResourceReq("*", 1024, 3, 5, null)); + resourceRequest1.add(am1.createResourceReq("h1:1234", 1024, 3, 2, + RMNodeLabelsManager.NO_LABEL)); + resourceRequest1.add(am1.createResourceReq("/default-rack", 1024, 2, 1, + null)); + resourceRequest1.add(am1.createResourceReq("*", 1024, 2, 3, + RMNodeLabelsManager.NO_LABEL)); + resourceRequest1.add(am1.createResourceReq("h2:1234", 1024, 2, 4, null)); + am1.allocate(resourceRequest1, new ArrayList()); + allResourceRequests = app.getAppSchedulingInfo().getAllResourceRequests(); + for (ResourceRequest changeReq : allResourceRequests) { + if (changeReq.getPriority().getPriority() == 3) { + Assert.assertEquals("Expected label Empty", + RMNodeLabelsManager.NO_LABEL, changeReq.getNodeLabelExpression()); + } else if (changeReq.getPriority().getPriority() == 2) { + Assert.assertEquals("Expected label y", RMNodeLabelsManager.NO_LABEL, + changeReq.getNodeLabelExpression()); + } + } + } +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/12f819a6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairSchedulerTestBase.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairSchedulerTestBase.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairSchedulerTestBase.java index 0a9c389..00dbfab 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairSchedulerTestBase.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairSchedulerTestBase.java @@ -37,6 +37,7 @@ import org.apache.hadoop.yarn.factories.RecordFactory; import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider; import org.apache.hadoop.yarn.server.resourcemanager.RMContext; import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager; +import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt; @@ -111,6 +112,7 @@ public class FairSchedulerTestBase { prio.setPriority(priority); request.setPriority(prio); request.setRelaxLocality(relaxLocality); + request.setNodeLabelExpression(RMNodeLabelsManager.NO_LABEL); return request; } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org For additional commands, e-mail: common-commits-help@hadoop.apache.org