diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java index 2b7cd5f..90f6876 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java @@ -444,19 +444,19 @@ public ReservationDeleteResponse deleteReservation( } @Override - public Map> getNodeToLabels() throws YarnException, + public Map> getNodeToLabels() throws YarnException, IOException { return client.getNodeToLabels(); } @Override - public Map> getLabelsToNodes() throws YarnException, + public Map> getLabelsToNodes() throws YarnException, IOException { return client.getLabelsToNodes(); } @Override - public Map> getLabelsToNodes(Set labels) + public Map> getLabelsToNodes(Set labels) throws YarnException, IOException { return client.getLabelsToNodes(labels); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetLabelsToNodesResponse.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetLabelsToNodesResponse.java index f105359..da2be28 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetLabelsToNodesResponse.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetLabelsToNodesResponse.java @@ -24,11 +24,12 @@ import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceStability.Evolving; import org.apache.hadoop.yarn.api.records.NodeId; +import org.apache.hadoop.yarn.api.records.NodeLabel; import org.apache.hadoop.yarn.util.Records; public abstract class GetLabelsToNodesResponse { public static GetLabelsToNodesResponse newInstance( - Map> map) { + Map> map) { GetLabelsToNodesResponse response = Records.newRecord(GetLabelsToNodesResponse.class); response.setLabelsToNodes(map); @@ -37,9 +38,9 @@ public static GetLabelsToNodesResponse newInstance( @Public @Evolving - public abstract void setLabelsToNodes(Map> map); + public abstract void setLabelsToNodes(Map> map); @Public @Evolving - public abstract Map> getLabelsToNodes(); + public abstract Map> getLabelsToNodes(); } \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetNodesToLabelsResponse.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetNodesToLabelsResponse.java index bcd5421..432485c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetNodesToLabelsResponse.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetNodesToLabelsResponse.java @@ -24,11 +24,12 @@ import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceStability.Evolving; import org.apache.hadoop.yarn.api.records.NodeId; +import org.apache.hadoop.yarn.api.records.NodeLabel; import org.apache.hadoop.yarn.util.Records; public abstract class GetNodesToLabelsResponse { public static GetNodesToLabelsResponse newInstance( - Map> map) { + Map> map) { GetNodesToLabelsResponse response = Records.newRecord(GetNodesToLabelsResponse.class); response.setNodeToLabels(map); @@ -37,9 +38,9 @@ public static GetNodesToLabelsResponse newInstance( @Public @Evolving - public abstract void setNodeToLabels(Map> map); + public abstract void setNodeToLabels(Map> map); @Public @Evolving - public abstract Map> getNodeToLabels(); + public abstract Map> getNodeToLabels(); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto index c45081a..7b3f2d4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto @@ -252,12 +252,17 @@ message NodeIdToLabelsProto { repeated string nodeLabels = 2; } +message NodeIdToLabelsInfoProto { + optional NodeIdProto nodeId = 1; + repeated NodeLabelProto nodeLabels = 2; +} + message StringArrayProto { repeated string elements = 1; } message LabelsToNodeIdsProto { - optional string nodeLabels = 1; + optional NodeLabelProto nodeLabels = 1; repeated NodeIdProto nodeId = 2; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto index 410b663..098785a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto @@ -198,7 +198,7 @@ message GetNodesToLabelsRequestProto { } message GetNodesToLabelsResponseProto { - repeated NodeIdToLabelsProto nodeToLabels = 1; + repeated NodeIdToLabelsInfoProto nodeToLabels = 1; } message GetLabelsToNodesRequestProto { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/YarnClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/YarnClient.java index 5ce626c..ff03c7d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/YarnClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/YarnClient.java @@ -619,7 +619,7 @@ public abstract ReservationDeleteResponse deleteReservation( */ @Public @Unstable - public abstract Map> getNodeToLabels() + public abstract Map> getNodeToLabels() throws YarnException, IOException; /** @@ -634,7 +634,7 @@ public abstract ReservationDeleteResponse deleteReservation( */ @Public @Unstable - public abstract Map> getLabelsToNodes() + public abstract Map> getLabelsToNodes() throws YarnException, IOException; /** @@ -650,8 +650,8 @@ public abstract ReservationDeleteResponse deleteReservation( */ @Public @Unstable - public abstract Map> getLabelsToNodes(Set labels) - throws YarnException, IOException; + public abstract Map> getLabelsToNodes( + Set labels) throws YarnException, IOException; /** *

diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/YarnClientImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/YarnClientImpl.java index 42dd5cd..be4c8c4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/YarnClientImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/YarnClientImpl.java @@ -795,21 +795,21 @@ public ReservationDeleteResponse deleteReservation( } @Override - public Map> getNodeToLabels() throws YarnException, + public Map> getNodeToLabels() throws YarnException, IOException { return rmClient.getNodeToLabels(GetNodesToLabelsRequest.newInstance()) .getNodeToLabels(); } @Override - public Map> getLabelsToNodes() throws YarnException, + public Map> getLabelsToNodes() throws YarnException, IOException { return rmClient.getLabelsToNodes(GetLabelsToNodesRequest.newInstance()) .getLabelsToNodes(); } @Override - public Map> getLabelsToNodes(Set labels) + public Map> getLabelsToNodes(Set labels) throws YarnException, IOException { return rmClient.getLabelsToNodes( GetLabelsToNodesRequest.newInstance(labels)).getLabelsToNodes(); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestYarnClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestYarnClient.java index 10b9bbb..d3971e3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestYarnClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestYarnClient.java @@ -87,6 +87,7 @@ import org.apache.hadoop.yarn.api.records.ContainerState; import org.apache.hadoop.yarn.api.records.FinalApplicationStatus; import org.apache.hadoop.yarn.api.records.NodeId; +import org.apache.hadoop.yarn.api.records.NodeLabel; import org.apache.hadoop.yarn.api.records.Priority; import org.apache.hadoop.yarn.api.records.ReservationDefinition; import org.apache.hadoop.yarn.api.records.ReservationId; @@ -458,9 +459,9 @@ public void testGetLabelsToNodes() throws YarnException, IOException { client.start(); // Get labels to nodes mapping - Map> expectedLabelsToNodes = + Map> expectedLabelsToNodes = ((MockYarnClient)client).getLabelsToNodesMap(); - Map> labelsToNodes = client.getLabelsToNodes(); + Map> labelsToNodes = client.getLabelsToNodes(); Assert.assertEquals(labelsToNodes, expectedLabelsToNodes); Assert.assertEquals(labelsToNodes.size(), 3); @@ -704,7 +705,7 @@ public void setYarnApplicationState(YarnApplicationState state) { } @Override - public Map> getLabelsToNodes() + public Map> getLabelsToNodes() throws YarnException, IOException { when(mockLabelsToNodesResponse.getLabelsToNodes()).thenReturn( getLabelsToNodesMap()); @@ -712,31 +713,31 @@ public void setYarnApplicationState(YarnApplicationState state) { } @Override - public Map> getLabelsToNodes(Set labels) + public Map> getLabelsToNodes(Set labels) throws YarnException, IOException { when(mockLabelsToNodesResponse.getLabelsToNodes()).thenReturn( getLabelsToNodesMap(labels)); return super.getLabelsToNodes(labels); } - public Map> getLabelsToNodesMap() { - Map> map = new HashMap>(); + public Map> getLabelsToNodesMap() { + Map> map = new HashMap>(); Set setNodeIds = new HashSet(Arrays.asList( NodeId.newInstance("host1", 0), NodeId.newInstance("host2", 0))); - map.put("x", setNodeIds); - map.put("y", setNodeIds); - map.put("z", setNodeIds); + map.put(NodeLabel.newInstance("x"), setNodeIds); + map.put(NodeLabel.newInstance("y"), setNodeIds); + map.put(NodeLabel.newInstance("z"), setNodeIds); return map; } - public Map> getLabelsToNodesMap(Set labels) { - Map> map = new HashMap>(); + public Map> getLabelsToNodesMap(Set labels) { + Map> map = new HashMap>(); Set setNodeIds = new HashSet(Arrays.asList( NodeId.newInstance("host1", 0), NodeId.newInstance("host2", 0))); for(String label : labels) { - map.put(label, setNodeIds); + map.put(NodeLabel.newInstance(label), setNodeIds); } return map; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetLabelsToNodesResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetLabelsToNodesResponsePBImpl.java index e197997..023ffa2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetLabelsToNodesResponsePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetLabelsToNodesResponsePBImpl.java @@ -29,11 +29,13 @@ import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceStability.Evolving; import org.apache.hadoop.yarn.api.records.NodeId; +import org.apache.hadoop.yarn.api.records.NodeLabel; import org.apache.hadoop.yarn.api.records.impl.pb.NodeIdPBImpl; +import org.apache.hadoop.yarn.api.records.impl.pb.NodeLabelPBImpl; import org.apache.hadoop.yarn.proto.YarnProtos.NodeIdProto; import org.apache.hadoop.yarn.api.protocolrecords.GetLabelsToNodesResponse; - import org.apache.hadoop.yarn.proto.YarnProtos.LabelsToNodeIdsProto; +import org.apache.hadoop.yarn.proto.YarnProtos.NodeLabelProto; import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetLabelsToNodesResponseProto; import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetLabelsToNodesResponseProtoOrBuilder; @@ -44,7 +46,7 @@ GetLabelsToNodesResponseProto.Builder builder = null; boolean viaProto = false; - private Map> labelsToNodes; + private Map> labelsToNodes; public GetLabelsToNodesResponsePBImpl() { this.builder = GetLabelsToNodesResponseProto.newBuilder(); @@ -61,7 +63,7 @@ private void initLabelsToNodes() { } GetLabelsToNodesResponseProtoOrBuilder p = viaProto ? proto : builder; List list = p.getLabelsToNodesList(); - this.labelsToNodes = new HashMap>(); + this.labelsToNodes = new HashMap>(); for (LabelsToNodeIdsProto c : list) { Set setNodes = new HashSet(); @@ -69,8 +71,9 @@ private void initLabelsToNodes() { NodeId node = new NodeIdPBImpl(n); setNodes.add(node); } - if(!setNodes.isEmpty()) { - this.labelsToNodes.put(c.getNodeLabels(), setNodes); + if (!setNodes.isEmpty()) { + this.labelsToNodes + .put(new NodeLabelPBImpl(c.getNodeLabels()), setNodes); } } } @@ -94,7 +97,7 @@ private void addLabelsToNodesToProto() { public Iterator iterator() { return new Iterator() { - Iterator>> iter = + Iterator>> iter = labelsToNodes.entrySet().iterator(); @Override @@ -104,13 +107,14 @@ public void remove() { @Override public LabelsToNodeIdsProto next() { - Entry> now = iter.next(); + Entry> now = iter.next(); Set nodeProtoSet = new HashSet(); for(NodeId n : now.getValue()) { nodeProtoSet.add(convertToProtoFormat(n)); } return LabelsToNodeIdsProto.newBuilder() - .setNodeLabels(now.getKey()).addAllNodeId(nodeProtoSet) + .setNodeLabels(convertToProtoFormat(now.getKey())) + .addAllNodeId(nodeProtoSet) .build(); } @@ -148,6 +152,10 @@ public GetLabelsToNodesResponseProto getProto() { private NodeIdProto convertToProtoFormat(NodeId t) { return ((NodeIdPBImpl)t).getProto(); } + + private NodeLabelProto convertToProtoFormat(NodeLabel l) { + return ((NodeLabelPBImpl)l).getProto(); + } @Override public int hashCode() { @@ -168,7 +176,7 @@ public boolean equals(Object other) { @Override @Public @Evolving - public void setLabelsToNodes(Map> map) { + public void setLabelsToNodes(Map> map) { initLabelsToNodes(); labelsToNodes.clear(); labelsToNodes.putAll(map); @@ -177,7 +185,7 @@ public void setLabelsToNodes(Map> map) { @Override @Public @Evolving - public Map> getLabelsToNodes() { + public Map> getLabelsToNodes() { initLabelsToNodes(); return this.labelsToNodes; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetNodesToLabelsResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetNodesToLabelsResponsePBImpl.java index 3404830..5fc02b6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetNodesToLabelsResponsePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetNodesToLabelsResponsePBImpl.java @@ -19,6 +19,7 @@ package org.apache.hadoop.yarn.api.protocolrecords.impl.pb; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -26,12 +27,13 @@ import java.util.Set; import org.apache.hadoop.yarn.api.records.NodeId; +import org.apache.hadoop.yarn.api.records.NodeLabel; import org.apache.hadoop.yarn.api.records.impl.pb.NodeIdPBImpl; +import org.apache.hadoop.yarn.api.records.impl.pb.NodeLabelPBImpl; import org.apache.hadoop.yarn.proto.YarnProtos.NodeIdProto; import org.apache.hadoop.yarn.api.protocolrecords.GetNodesToLabelsResponse; - -import com.google.common.collect.Sets; -import org.apache.hadoop.yarn.proto.YarnProtos.NodeIdToLabelsProto; +import org.apache.hadoop.yarn.proto.YarnProtos.NodeIdToLabelsInfoProto; +import org.apache.hadoop.yarn.proto.YarnProtos.NodeLabelProto; import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetNodesToLabelsResponseProto; import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetNodesToLabelsResponseProtoOrBuilder; @@ -42,7 +44,7 @@ GetNodesToLabelsResponseProto.Builder builder = null; boolean viaProto = false; - private Map> nodeToLabels; + private Map> nodeToLabels; public GetNodesToLabelsResponsePBImpl() { this.builder = GetNodesToLabelsResponseProto.newBuilder(); @@ -58,12 +60,15 @@ private void initNodeToLabels() { return; } GetNodesToLabelsResponseProtoOrBuilder p = viaProto ? proto : builder; - List list = p.getNodeToLabelsList(); - this.nodeToLabels = new HashMap>(); - - for (NodeIdToLabelsProto c : list) { - this.nodeToLabels.put(new NodeIdPBImpl(c.getNodeId()), - Sets.newHashSet(c.getNodeLabelsList())); + List list = p.getNodeToLabelsList(); + this.nodeToLabels = new HashMap>(); + + for (NodeIdToLabelsInfoProto c : list) { + Set labels = new HashSet(); + for (NodeLabelProto l : c.getNodeLabelsList()) { + labels.add(new NodeLabelPBImpl(l)); + } + this.nodeToLabels.put(new NodeIdPBImpl(c.getNodeId()), labels); } } @@ -80,13 +85,13 @@ private void addNodeToLabelsToProto() { if (nodeToLabels == null) { return; } - Iterable iterable = - new Iterable() { + Iterable iterable = + new Iterable() { @Override - public Iterator iterator() { - return new Iterator() { + public Iterator iterator() { + return new Iterator() { - Iterator>> iter = nodeToLabels + Iterator>> iter = nodeToLabels .entrySet().iterator(); @Override @@ -95,11 +100,16 @@ public void remove() { } @Override - public NodeIdToLabelsProto next() { - Entry> now = iter.next(); - return NodeIdToLabelsProto.newBuilder() + public NodeIdToLabelsInfoProto next() { + Entry> now = iter.next(); + Set labelProtoList = + new HashSet(); + for (NodeLabel l : now.getValue()) { + labelProtoList.add(convertToProtoFormat(l)); + } + return NodeIdToLabelsInfoProto.newBuilder() .setNodeId(convertToProtoFormat(now.getKey())) - .addAllNodeLabels(now.getValue()).build(); + .addAllNodeLabels(labelProtoList).build(); } @Override @@ -134,13 +144,13 @@ public GetNodesToLabelsResponseProto getProto() { } @Override - public Map> getNodeToLabels() { + public Map> getNodeToLabels() { initNodeToLabels(); return this.nodeToLabels; } @Override - public void setNodeToLabels(Map> map) { + public void setNodeToLabels(Map> map) { initNodeToLabels(); nodeToLabels.clear(); nodeToLabels.putAll(map); @@ -150,6 +160,10 @@ private NodeIdProto convertToProtoFormat(NodeId t) { return ((NodeIdPBImpl)t).getProto(); } + private NodeLabelProto convertToProtoFormat(NodeLabel t) { + return ((NodeLabelPBImpl)t).getProto(); + } + @Override public int hashCode() { assert false : "hashCode not designed"; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java index 428b9eb..e4199be 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java @@ -1227,7 +1227,7 @@ public GetNodesToLabelsResponse getNodeToLabels( GetNodesToLabelsRequest request) throws YarnException, IOException { RMNodeLabelsManager labelsMgr = rmContext.getNodeLabelManager(); GetNodesToLabelsResponse response = - GetNodesToLabelsResponse.newInstance(labelsMgr.getNodeLabels()); + GetNodesToLabelsResponse.newInstance(labelsMgr.getNodeLabelsInfo()); return response; } @@ -1237,10 +1237,10 @@ public GetLabelsToNodesResponse getLabelsToNodes( RMNodeLabelsManager labelsMgr = rmContext.getNodeLabelManager(); if (request.getNodeLabels() == null || request.getNodeLabels().isEmpty()) { return GetLabelsToNodesResponse.newInstance( - labelsMgr.getLabelsToNodes()); + labelsMgr.getLabelsInfoToNodes()); } else { return GetLabelsToNodesResponse.newInstance( - labelsMgr.getLabelsToNodes(request.getNodeLabels())); + labelsMgr.getLabelsInfoToNodes(request.getNodeLabels())); } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java index a39f94f..97842b9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java @@ -1435,11 +1435,13 @@ protected ClientRMService createClientRMService() { // Get node labels mapping GetNodesToLabelsResponse response1 = client.getNodeToLabels(GetNodesToLabelsRequest.newInstance()); - Map> nodeToLabels = response1.getNodeToLabels(); + Map> nodeToLabels = response1.getNodeToLabels(); Assert.assertTrue(nodeToLabels.keySet().containsAll( Arrays.asList(node1, node2))); - Assert.assertTrue(nodeToLabels.get(node1).containsAll(Arrays.asList("x"))); - Assert.assertTrue(nodeToLabels.get(node2).containsAll(Arrays.asList("y"))); + Assert.assertTrue(nodeToLabels.get(node1).containsAll( + Arrays.asList(NodeLabel.newInstance("x")))); + Assert.assertTrue(nodeToLabels.get(node2).containsAll( + Arrays.asList(NodeLabel.newInstance("y")))); rpc.stopProxy(client, conf); rm.close(); @@ -1491,15 +1493,16 @@ protected ClientRMService createClientRMService() { // Get labels to nodes mapping GetLabelsToNodesResponse response1 = client.getLabelsToNodes(GetLabelsToNodesRequest.newInstance()); - Map> labelsToNodes = response1.getLabelsToNodes(); - Assert.assertTrue( - labelsToNodes.keySet().containsAll(Arrays.asList("x", "y", "z"))); - Assert.assertTrue( - labelsToNodes.get("x").containsAll(Arrays.asList(node1A))); - Assert.assertTrue( - labelsToNodes.get("y").containsAll(Arrays.asList(node2A, node3A))); - Assert.assertTrue( - labelsToNodes.get("z").containsAll(Arrays.asList(node1B, node3B))); + Map> labelsToNodes = response1.getLabelsToNodes(); + Assert.assertTrue(labelsToNodes.keySet().containsAll( + Arrays.asList(NodeLabel.newInstance("x"), NodeLabel.newInstance("y"), + NodeLabel.newInstance("z")))); + Assert.assertTrue(labelsToNodes.get(NodeLabel.newInstance("x")) + .containsAll(Arrays.asList(node1A))); + Assert.assertTrue(labelsToNodes.get(NodeLabel.newInstance("y")) + .containsAll(Arrays.asList(node2A, node3A))); + Assert.assertTrue(labelsToNodes.get(NodeLabel.newInstance("z")) + .containsAll(Arrays.asList(node1B, node3B))); // Get labels to nodes mapping for specific labels Set setlabels = @@ -1507,13 +1510,13 @@ protected ClientRMService createClientRMService() { GetLabelsToNodesResponse response2 = client.getLabelsToNodes(GetLabelsToNodesRequest.newInstance(setlabels)); labelsToNodes = response2.getLabelsToNodes(); - Assert.assertTrue( - labelsToNodes.keySet().containsAll(Arrays.asList("x", "z"))); - Assert.assertTrue( - labelsToNodes.get("x").containsAll(Arrays.asList(node1A))); - Assert.assertTrue( - labelsToNodes.get("z").containsAll(Arrays.asList(node1B, node3B))); - Assert.assertEquals(labelsToNodes.get("y"), null); + Assert.assertTrue(labelsToNodes.keySet().containsAll( + Arrays.asList(NodeLabel.newInstance("x"), NodeLabel.newInstance("z")))); + Assert.assertTrue(labelsToNodes.get(NodeLabel.newInstance("x")) + .containsAll(Arrays.asList(node1A))); + Assert.assertTrue(labelsToNodes.get(NodeLabel.newInstance("z")) + .containsAll(Arrays.asList(node1B, node3B))); + Assert.assertEquals(labelsToNodes.get(NodeLabel.newInstance("y")), null); rpc.stopProxy(client, conf); rm.close(); -- 1.9.4.msysgit.1