Return-Path: X-Original-To: apmail-hadoop-common-commits-archive@www.apache.org Delivered-To: apmail-hadoop-common-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3422618DF3 for ; Thu, 12 Nov 2015 14:49:40 +0000 (UTC) Received: (qmail 60841 invoked by uid 500); 12 Nov 2015 14:49:40 -0000 Delivered-To: apmail-hadoop-common-commits-archive@hadoop.apache.org Received: (qmail 60783 invoked by uid 500); 12 Nov 2015 14:49:39 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 60655 invoked by uid 99); 12 Nov 2015 14:49:39 -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; Thu, 12 Nov 2015 14:49:39 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id A4E05E56F1; Thu, 12 Nov 2015 14:49:39 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jlowe@apache.org To: common-commits@hadoop.apache.org Message-Id: <176c593aa17545b68f56e178cf8032a2@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: hadoop git commit: YARN-4345. yarn rmadmin -updateNodeResource doesn't work. Contributed by Junping Du Date: Thu, 12 Nov 2015 14:49:39 +0000 (UTC) Repository: hadoop Updated Branches: refs/heads/trunk 9ad708a0d -> 06a70311b YARN-4345. yarn rmadmin -updateNodeResource doesn't work. Contributed by Junping Du Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/06a70311 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/06a70311 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/06a70311 Branch: refs/heads/trunk Commit: 06a70311b90a7bc676af86e778ec7bcd8dd6ea82 Parents: 9ad708a Author: Jason Lowe Authored: Thu Nov 12 14:49:06 2015 +0000 Committer: Jason Lowe Committed: Thu Nov 12 14:49:06 2015 +0000 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 ++ .../hadoop/yarn/client/cli/RMAdminCLI.java | 3 +- .../hadoop/yarn/client/cli/TestRMAdminCLI.java | 32 ++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/06a70311/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 5ee2eae..33b4c24 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -1048,6 +1048,9 @@ Release 2.8.0 - UNRELEASED YARN-3840. Resource Manager web ui issue when sorting application by id (with application having id > 9999) (Mohammad Shahid Khan via jianhe) + YARN-4345. yarn rmadmin -updateNodeResource doesn't work (Junping Du via + jlowe) + Release 2.7.3 - UNRELEASED INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/06a70311/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java index 92cb934..21ba7a8 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/RMAdminCLI.java @@ -415,7 +415,7 @@ public class RMAdminCLI extends HAAdmin { adminProtocol.refreshClusterMaxPriority(request); return 0; } - + private int updateNodeResource(String nodeIdStr, int memSize, int cores, int overCommitTimeout) throws IOException, YarnException { // Refresh the nodes @@ -428,6 +428,7 @@ public class RMAdminCLI extends HAAdmin { new HashMap(); resourceMap.put( nodeId, ResourceOption.newInstance(resource, overCommitTimeout)); + request.setNodeResourceMap(resourceMap); adminProtocol.updateNodeResource(request); return 0; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/06a70311/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java index 74ed848..085cf02 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRMAdminCLI.java @@ -20,6 +20,7 @@ package org.apache.hadoop.yarn.client.cli; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; @@ -35,6 +36,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintStream; import java.util.HashSet; +import java.util.Map; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ha.HAServiceProtocol; @@ -43,6 +45,8 @@ import org.apache.hadoop.ha.HAServiceTarget; import org.apache.hadoop.service.Service.STATE; import org.apache.hadoop.yarn.api.records.DecommissionType; import org.apache.hadoop.yarn.api.records.NodeId; +import org.apache.hadoop.yarn.api.records.Resource; +import org.apache.hadoop.yarn.api.records.ResourceOption; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.exceptions.YarnException; import org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager; @@ -59,9 +63,13 @@ import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshQueuesRequest; import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshServiceAclsRequest; import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshSuperUserGroupsConfigurationRequest; import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshUserToGroupsMappingsRequest; +import org.apache.hadoop.yarn.server.api.protocolrecords.UpdateNodeResourceRequest; +import org.apache.hadoop.yarn.util.ConverterUtils; import org.apache.hadoop.yarn.util.Records; +import org.apache.hadoop.yarn.util.resource.Resources; import org.junit.Before; import org.junit.Test; +import org.mockito.ArgumentCaptor; import org.mockito.ArgumentMatcher; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; @@ -187,6 +195,30 @@ public class TestRMAdminCLI { } @Test(timeout=500) + public void testUpdateNodeResource() throws Exception { + String nodeIdStr = "0.0.0.0:0"; + int memSize = 2048; + int cores = 2; + String[] args = { "-updateNodeResource", nodeIdStr, + Integer.toString(memSize), Integer.toString(cores) }; + assertEquals(0, rmAdminCLI.run(args)); + ArgumentCaptor argument = + ArgumentCaptor.forClass(UpdateNodeResourceRequest.class); + verify(admin).updateNodeResource(argument.capture()); + UpdateNodeResourceRequest request = argument.getValue(); + Map resourceMap = request.getNodeResourceMap(); + NodeId nodeId = ConverterUtils.toNodeId(nodeIdStr); + Resource expectedResource = Resources.createResource(memSize, cores); + ResourceOption resource = resourceMap.get(nodeId); + assertNotNull("resource for " + nodeIdStr + " shouldn't be null.", + resource); + assertEquals("resource value for " + nodeIdStr + " is not as expected.", + ResourceOption.newInstance(expectedResource, + ResourceOption.OVER_COMMIT_TIMEOUT_MILLIS_DEFAULT), + resource); + } + + @Test(timeout=500) public void testRefreshNodes() throws Exception { String[] args = { "-refreshNodes" }; assertEquals(0, rmAdminCLI.run(args));