Repository: hadoop Updated Branches: refs/heads/branch-2 2448d8457 -> c5b28c03a
YARN-6679. Reduce Resource instance overhead via non-PBImpl (Contributed by Daryn Sharp via Daniel Templeton) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c5b28c03 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c5b28c03 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c5b28c03 Branch: refs/heads/branch-2 Commit: c5b28c03a1587ff9138abba094aba65efc3fc819 Parents: 2448d84 Author: Daniel Templeton <[email protected]> Authored: Thu Jun 8 10:41:32 2017 -0700 Committer: Daniel Templeton <[email protected]> Committed: Thu Jun 8 10:41:32 2017 -0700 ---------------------------------------------------------------------- .../hadoop/yarn/api/records/Resource.java | 53 ++++++++++++++++---- .../impl/pb/AllocateResponsePBImpl.java | 2 +- .../pb/GetNewApplicationResponsePBImpl.java | 9 ++-- ...RegisterApplicationMasterResponsePBImpl.java | 2 +- .../ApplicationResourceUsageReportPBImpl.java | 14 ++---- .../pb/ApplicationSubmissionContextPBImpl.java | 6 +-- .../api/records/impl/pb/ContainerPBImpl.java | 6 +-- .../records/impl/pb/ContainerReportPBImpl.java | 6 +-- .../pb/ContainerResourceDecreasePBImpl.java | 2 +- .../pb/ContainerResourceIncreasePBImpl.java | 2 +- .../ContainerResourceIncreaseRequestPBImpl.java | 2 +- .../records/impl/pb/ContainerStatusPBImpl.java | 2 +- .../api/records/impl/pb/NodeReportPBImpl.java | 10 ++-- .../yarn/api/records/impl/pb/ProtoUtils.java | 2 +- .../impl/pb/ReservationRequestPBImpl.java | 2 +- .../pb/ResourceAllocationRequestPBImpl.java | 2 +- .../records/impl/pb/ResourceOptionPBImpl.java | 2 +- .../api/records/impl/pb/ResourcePBImpl.java | 26 +++++----- .../records/impl/pb/ResourceRequestPBImpl.java | 2 +- .../yarn/security/ContainerTokenIdentifier.java | 2 +- .../hadoop/yarn/util/resource/Resources.java | 11 +--- .../impl/pb/ContainerStartDataPBImpl.java | 7 ++- .../impl/pb/NMContainerStatusPBImpl.java | 6 +-- .../impl/pb/NodeHeartbeatResponsePBImpl.java | 2 +- .../pb/RegisterNodeManagerRequestPBImpl.java | 3 +- .../pb/RegisterNodeManagerResponsePBImpl.java | 3 +- .../protocolrecords/TestProtocolRecords.java | 20 ++++++++ .../recovery/NMLeveldbStateStoreService.java | 3 +- .../server/ContainerTokenIdentifierForTest.java | 5 +- 29 files changed, 125 insertions(+), 89 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java index 0d31b6f..0fd41a2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java @@ -23,7 +23,6 @@ import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceStability.Evolving; import org.apache.hadoop.classification.InterfaceStability.Stable; import org.apache.hadoop.yarn.api.ApplicationMasterProtocol; -import org.apache.hadoop.yarn.util.Records; /** @@ -53,22 +52,49 @@ import org.apache.hadoop.yarn.util.Records; @Stable public abstract class Resource implements Comparable<Resource> { + private static class SimpleResource extends Resource { + private long memory; + private long vcores; + SimpleResource(long memory, long vcores) { + this.memory = memory; + this.vcores = vcores; + } + @Override + public int getMemory() { + return (int)memory; + } + @Override + public void setMemory(int memory) { + this.memory = memory; + } + @Override + public long getMemorySize() { + return memory; + } + @Override + public void setMemorySize(long memory) { + this.memory = memory; + } + @Override + public int getVirtualCores() { + return (int)vcores; + } + @Override + public void setVirtualCores(int vcores) { + this.vcores = vcores; + } + } + @Public @Stable public static Resource newInstance(int memory, int vCores) { - Resource resource = Records.newRecord(Resource.class); - resource.setMemorySize(memory); - resource.setVirtualCores(vCores); - return resource; + return new SimpleResource(memory, vCores); } @Public @Stable public static Resource newInstance(long memory, int vCores) { - Resource resource = Records.newRecord(Resource.class); - resource.setMemorySize(memory); - resource.setVirtualCores(vCores); - return resource; + return new SimpleResource(memory, vCores); } /** @@ -168,6 +194,15 @@ public abstract class Resource implements Comparable<Resource> { } @Override + public int compareTo(Resource other) { + long diff = this.getMemorySize() - other.getMemorySize(); + if (diff == 0) { + diff = this.getVirtualCores() - other.getVirtualCores(); + } + return diff == 0 ? 0 : (diff > 0 ? 1 : -1); + } + + @Override public String toString() { return "<memory:" + getMemorySize() + ", vCores:" + getVirtualCores() + ">"; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java index 31aabb3..3f0c6b4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java @@ -748,7 +748,7 @@ public class AllocateResponsePBImpl extends AllocateResponse { } private synchronized ResourceProto convertToProtoFormat(Resource r) { - return ((ResourcePBImpl) r).getProto(); + return ProtoUtils.convertToProtoFormat(r); } private synchronized PreemptionMessagePBImpl convertFromProtoFormat(PreemptionMessageProto p) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetNewApplicationResponsePBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetNewApplicationResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetNewApplicationResponsePBImpl.java index eb8ca2c..155e756 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetNewApplicationResponsePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetNewApplicationResponsePBImpl.java @@ -25,6 +25,7 @@ import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationResponse; import org.apache.hadoop.yarn.api.records.ApplicationId; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.api.records.impl.pb.ApplicationIdPBImpl; +import org.apache.hadoop.yarn.api.records.impl.pb.ProtoUtils; import org.apache.hadoop.yarn.api.records.impl.pb.ResourcePBImpl; import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationIdProto; import org.apache.hadoop.yarn.proto.YarnProtos.ResourceProto; @@ -158,13 +159,13 @@ public class GetNewApplicationResponsePBImpl extends GetNewApplicationResponse { private ApplicationIdProto convertToProtoFormat(ApplicationId t) { return ((ApplicationIdPBImpl)t).getProto(); } - + private Resource convertFromProtoFormat(ResourceProto resource) { - return new ResourcePBImpl(resource); + return new ResourcePBImpl(resource); } private ResourceProto convertToProtoFormat(Resource resource) { - return ((ResourcePBImpl)resource).getProto(); + return ProtoUtils.convertToProtoFormat(resource); } -} +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/RegisterApplicationMasterResponsePBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/RegisterApplicationMasterResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/RegisterApplicationMasterResponsePBImpl.java index a95aadf..1a70933 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/RegisterApplicationMasterResponsePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/RegisterApplicationMasterResponsePBImpl.java @@ -438,7 +438,7 @@ public class RegisterApplicationMasterResponsePBImpl extends } private ResourceProto convertToProtoFormat(Resource resource) { - return ((ResourcePBImpl)resource).getProto(); + return ProtoUtils.convertToProtoFormat(resource); } private ContainerPBImpl convertFromProtoFormat(ContainerProto p) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationResourceUsageReportPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationResourceUsageReportPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationResourceUsageReportPBImpl.java index b6a38e7..1c85e28 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationResourceUsageReportPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationResourceUsageReportPBImpl.java @@ -79,20 +79,14 @@ extends ApplicationResourceUsageReport { } private void mergeLocalToBuilder() { - if (this.usedResources != null - && !((ResourcePBImpl) this.usedResources).getProto().equals( - builder.getUsedResources())) { + if (this.usedResources != null) { builder.setUsedResources(convertToProtoFormat(this.usedResources)); } - if (this.reservedResources != null - && !((ResourcePBImpl) this.reservedResources).getProto().equals( - builder.getReservedResources())) { + if (this.reservedResources != null) { builder.setReservedResources( convertToProtoFormat(this.reservedResources)); } - if (this.neededResources != null - && !((ResourcePBImpl) this.neededResources).getProto().equals( - builder.getNeededResources())) { + if (this.neededResources != null) { builder.setNeededResources(convertToProtoFormat(this.neededResources)); } } @@ -257,7 +251,7 @@ extends ApplicationResourceUsageReport { } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl)t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java index 1a6719a..c2b9111 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java @@ -120,9 +120,7 @@ extends ApplicationSubmissionContext { if (this.amContainer != null) { builder.setAmContainerSpec(convertToProtoFormat(this.amContainer)); } - if (this.resource != null && - !((ResourcePBImpl) this.resource).getProto().equals( - builder.getResource())) { + if (this.resource != null) { builder.setResource(convertToProtoFormat(this.resource)); } if (this.applicationTags != null && !this.applicationTags.isEmpty()) { @@ -475,7 +473,7 @@ extends ApplicationSubmissionContext { } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl)t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerPBImpl.java index 6bf653d..b6e22d1 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerPBImpl.java @@ -93,9 +93,7 @@ public class ContainerPBImpl extends Container { builder.getNodeId())) { builder.setNodeId(convertToProtoFormat(this.nodeId)); } - if (this.resource != null - && !((ResourcePBImpl) this.resource).getProto().equals( - builder.getResource())) { + if (this.resource != null) { builder.setResource(convertToProtoFormat(this.resource)); } if (this.priority != null && @@ -307,7 +305,7 @@ public class ContainerPBImpl extends Container { } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl)t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } private PriorityPBImpl convertFromProtoFormat(PriorityProto p) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerReportPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerReportPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerReportPBImpl.java index 1f0405f..5d435da 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerReportPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerReportPBImpl.java @@ -270,9 +270,7 @@ public class ContainerReportPBImpl extends ContainerReport { && !((NodeIdPBImpl) nodeId).getProto().equals(builder.getNodeId())) { builder.setNodeId(convertToProtoFormat(this.nodeId)); } - if (this.resource != null - && !((ResourcePBImpl) this.resource).getProto().equals( - builder.getResource())) { + if (this.resource != null) { builder.setResource(convertToProtoFormat(this.resource)); } if (this.priority != null @@ -318,7 +316,7 @@ public class ContainerReportPBImpl extends ContainerReport { } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl) t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } private PriorityPBImpl convertFromProtoFormat(PriorityProto p) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceDecreasePBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceDecreasePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceDecreasePBImpl.java index 9843085..18a9615 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceDecreasePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceDecreasePBImpl.java @@ -107,7 +107,7 @@ public class ContainerResourceDecreasePBImpl extends ContainerResourceDecrease { } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl) t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } private void mergeLocalToProto() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreasePBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreasePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreasePBImpl.java index f3155ef..31a4fcb 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreasePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreasePBImpl.java @@ -131,7 +131,7 @@ public class ContainerResourceIncreasePBImpl extends ContainerResourceIncrease { } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl) t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } private Token convertFromProtoFormat(TokenProto p) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreaseRequestPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreaseRequestPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreaseRequestPBImpl.java index 1b56b45..de0d931 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreaseRequestPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerResourceIncreaseRequestPBImpl.java @@ -111,7 +111,7 @@ public class ContainerResourceIncreaseRequestPBImpl extends } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl) t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } private void mergeLocalToProto() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerStatusPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerStatusPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerStatusPBImpl.java index 219cf02..11a3d86 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerStatusPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerStatusPBImpl.java @@ -339,7 +339,7 @@ public class ContainerStatusPBImpl extends ContainerStatus { } private ResourceProto convertToProtoFormat(Resource e) { - return ((ResourcePBImpl)e).getProto(); + return ProtoUtils.convertToProtoFormat(e); } private ResourcePBImpl convertFromProtoFormat(ResourceProto p) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeReportPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeReportPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeReportPBImpl.java index 1b88ab0..0d205e9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeReportPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeReportPBImpl.java @@ -253,14 +253,10 @@ public class NodeReportPBImpl extends NodeReport { builder.getNodeId())) { builder.setNodeId(convertToProtoFormat(this.nodeId)); } - if (this.used != null - && !((ResourcePBImpl) this.used).getProto().equals( - builder.getUsed())) { + if (this.used != null) { builder.setUsed(convertToProtoFormat(this.used)); } - if (this.capability != null - && !((ResourcePBImpl) this.capability).getProto().equals( - builder.getCapability())) { + if (this.capability != null) { builder.setCapability(convertToProtoFormat(this.capability)); } if (this.labels != null) { @@ -310,7 +306,7 @@ public class NodeReportPBImpl extends NodeReport { } private ResourceProto convertToProtoFormat(Resource r) { - return ((ResourcePBImpl) r).getProto(); + return ProtoUtils.convertToProtoFormat(r); } private ResourceUtilizationPBImpl convertFromProtoFormat( http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java index 98bb979..28f8c1d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java @@ -359,7 +359,7 @@ public class ProtoUtils { * Resource */ public static synchronized ResourceProto convertToProtoFormat(Resource r) { - return ((ResourcePBImpl) r).getProto(); + return ResourcePBImpl.getProto(r); } public static Resource convertFromProtoFormat(ResourceProto resource) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestPBImpl.java index e36b9fb..e5a9433 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestPBImpl.java @@ -140,7 +140,7 @@ public class ReservationRequestPBImpl extends ReservationRequest { } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl) t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceAllocationRequestPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceAllocationRequestPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceAllocationRequestPBImpl.java index 737ae44..805c628 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceAllocationRequestPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceAllocationRequestPBImpl.java @@ -146,7 +146,7 @@ public class ResourceAllocationRequestPBImpl extends } private ResourceProto convertToProtoFormat(Resource p) { - return ((ResourcePBImpl)p).getProto(); + return ProtoUtils.convertToProtoFormat(p); } private void mergeLocalToBuilder() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceOptionPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceOptionPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceOptionPBImpl.java index 5a4a44e..f8e24ad 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceOptionPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceOptionPBImpl.java @@ -80,7 +80,7 @@ public class ResourceOptionPBImpl extends ResourceOption { private ResourceProto convertToProtoFormat( Resource resource) { - return ((ResourcePBImpl)resource).getProto(); + return ProtoUtils.convertToProtoFormat(resource); } private ResourcePBImpl convertFromProtoFormat( http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java index c569a37..ed2c17e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java @@ -31,7 +31,20 @@ public class ResourcePBImpl extends Resource { ResourceProto proto = ResourceProto.getDefaultInstance(); ResourceProto.Builder builder = null; boolean viaProto = false; - + + // call via ProtoUtils.convertToProtoFormat(Resource) + static ResourceProto getProto(Resource r) { + final ResourcePBImpl pb; + if (r instanceof ResourcePBImpl) { + pb = (ResourcePBImpl)r; + } else { + pb = new ResourcePBImpl(); + pb.setMemorySize(r.getMemorySize()); + pb.setVirtualCores(r.getVirtualCores()); + } + return pb.getProto(); + } + public ResourcePBImpl() { builder = ResourceProto.newBuilder(); } @@ -89,15 +102,4 @@ public class ResourcePBImpl extends Resource { maybeInitBuilder(); builder.setVirtualCores(vCores); } - - @Override - public int compareTo(Resource other) { - long diff = this.getMemorySize() - other.getMemorySize(); - if (diff == 0) { - diff = this.getVirtualCores() - other.getVirtualCores(); - } - return diff == 0 ? 0 : (diff > 0 ? 1 : -1); - } - - } http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceRequestPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceRequestPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceRequestPBImpl.java index 9890296..eba5395 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceRequestPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceRequestPBImpl.java @@ -217,7 +217,7 @@ public class ResourceRequestPBImpl extends ResourceRequest { } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl)t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java index 4b34998..07917ef 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java @@ -132,7 +132,7 @@ public class ContainerTokenIdentifier extends TokenIdentifier { builder.setNmHostAddr(hostName); builder.setAppSubmitter(appSubmitter); if (r != null) { - builder.setResource(((ResourcePBImpl)r).getProto()); + builder.setResource(ProtoUtils.convertToProtoFormat(r)); } builder.setExpiryTimeStamp(expiryTimeStamp); builder.setMasterKeyId(masterKeyId); http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java index d22ffd6..fc46fa2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java @@ -21,7 +21,6 @@ package org.apache.hadoop.yarn.util.resource; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.yarn.api.records.*; -import org.apache.hadoop.yarn.util.Records; @InterfaceAudience.LimitedPrivate({"YARN", "MapReduce"}) @Unstable @@ -123,10 +122,7 @@ public class Resources { } public static Resource createResource(int memory, int cores) { - Resource resource = Records.newRecord(Resource.class); - resource.setMemorySize(memory); - resource.setVirtualCores(cores); - return resource; + return Resource.newInstance(memory, cores); } public static Resource createResource(long memory) { @@ -134,10 +130,7 @@ public class Resources { } public static Resource createResource(long memory, int cores) { - Resource resource = Records.newRecord(Resource.class); - resource.setMemorySize(memory); - resource.setVirtualCores(cores); - return resource; + return Resource.newInstance(memory, cores); } public static Resource none() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/records/impl/pb/ContainerStartDataPBImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/records/impl/pb/ContainerStartDataPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/records/impl/pb/ContainerStartDataPBImpl.java index 6d248b2..7b7e965 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/records/impl/pb/ContainerStartDataPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/records/impl/pb/ContainerStartDataPBImpl.java @@ -25,6 +25,7 @@ import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.api.records.impl.pb.ContainerIdPBImpl; import org.apache.hadoop.yarn.api.records.impl.pb.NodeIdPBImpl; import org.apache.hadoop.yarn.api.records.impl.pb.PriorityPBImpl; +import org.apache.hadoop.yarn.api.records.impl.pb.ProtoUtils; import org.apache.hadoop.yarn.api.records.impl.pb.ResourcePBImpl; import org.apache.hadoop.yarn.proto.ApplicationHistoryServerProtos.ContainerStartDataProto; import org.apache.hadoop.yarn.proto.ApplicationHistoryServerProtos.ContainerStartDataProtoOrBuilder; @@ -189,9 +190,7 @@ public class ContainerStartDataPBImpl extends ContainerStartData { builder.getContainerId())) { builder.setContainerId(convertToProtoFormat(this.containerId)); } - if (this.resource != null - && !((ResourcePBImpl) this.resource).getProto().equals( - builder.getAllocatedResource())) { + if (this.resource != null) { builder.setAllocatedResource(convertToProtoFormat(this.resource)); } if (this.nodeId != null @@ -232,7 +231,7 @@ public class ContainerStartDataPBImpl extends ContainerStartData { } private ResourceProto convertToProtoFormat(Resource resource) { - return ((ResourcePBImpl) resource).getProto(); + return ProtoUtils.convertToProtoFormat(resource); } private ResourcePBImpl convertFromProtoFormat(ResourceProto resource) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NMContainerStatusPBImpl.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/protocolrecords/impl/pb/NMContainerStatusPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NMContainerStatusPBImpl.java index 2d1046f..2380391 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NMContainerStatusPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NMContainerStatusPBImpl.java @@ -256,9 +256,7 @@ public class NMContainerStatusPBImpl extends NMContainerStatus { builder.setContainerId(convertToProtoFormat(this.containerId)); } - if (this.resource != null - && !((ResourcePBImpl) this.resource).getProto().equals( - builder.getResource())) { + if (this.resource != null) { builder.setResource(convertToProtoFormat(this.resource)); } @@ -295,7 +293,7 @@ public class NMContainerStatusPBImpl extends NMContainerStatus { } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl) t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } private ContainerStateProto http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.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/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.java index 3422697..471da92 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatResponsePBImpl.java @@ -598,7 +598,7 @@ public class NodeHeartbeatResponsePBImpl extends } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl)t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } private ApplicationIdPBImpl convertFromProtoFormat(ApplicationIdProto p) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/RegisterNodeManagerRequestPBImpl.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/protocolrecords/impl/pb/RegisterNodeManagerRequestPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/RegisterNodeManagerRequestPBImpl.java index 0291e0b..eda06d0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/RegisterNodeManagerRequestPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/RegisterNodeManagerRequestPBImpl.java @@ -32,6 +32,7 @@ import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.api.records.impl.pb.ApplicationIdPBImpl; 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.api.records.impl.pb.ProtoUtils; import org.apache.hadoop.yarn.api.records.impl.pb.ResourcePBImpl; import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationIdProto; import org.apache.hadoop.yarn.proto.YarnProtos.NodeIdProto; @@ -387,7 +388,7 @@ public class RegisterNodeManagerRequestPBImpl extends RegisterNodeManagerRequest } private static ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl)t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } private static NMContainerStatusPBImpl convertFromProtoFormat( http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/RegisterNodeManagerResponsePBImpl.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/protocolrecords/impl/pb/RegisterNodeManagerResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/RegisterNodeManagerResponsePBImpl.java index 56b675b..f9f5aa3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/RegisterNodeManagerResponsePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/RegisterNodeManagerResponsePBImpl.java @@ -21,6 +21,7 @@ package org.apache.hadoop.yarn.server.api.protocolrecords.impl.pb; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.api.records.impl.pb.ProtoBase; +import org.apache.hadoop.yarn.api.records.impl.pb.ProtoUtils; import org.apache.hadoop.yarn.api.records.impl.pb.ResourcePBImpl; import org.apache.hadoop.yarn.proto.YarnProtos.ResourceProto; import org.apache.hadoop.yarn.proto.YarnServerCommonProtos.MasterKeyProto; @@ -250,7 +251,7 @@ public class RegisterNodeManagerResponsePBImpl extends ProtoBase<RegisterNodeMan } private ResourceProto convertToProtoFormat(Resource t) { - return ((ResourcePBImpl)t).getProto(); + return ProtoUtils.convertToProtoFormat(t); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/api/protocolrecords/TestProtocolRecords.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/protocolrecords/TestProtocolRecords.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/api/protocolrecords/TestProtocolRecords.java index b9cde24..74f19e5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/api/protocolrecords/TestProtocolRecords.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/api/protocolrecords/TestProtocolRecords.java @@ -40,6 +40,9 @@ import org.apache.hadoop.yarn.api.records.NodeId; import org.apache.hadoop.yarn.api.records.Priority; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.api.records.impl.pb.ContainerStatusPBImpl; +import org.apache.hadoop.yarn.api.records.impl.pb.ProtoUtils; +import org.apache.hadoop.yarn.api.records.impl.pb.ResourcePBImpl; +import org.apache.hadoop.yarn.proto.YarnProtos.ResourceProto; import org.apache.hadoop.yarn.server.api.protocolrecords.impl.pb.NMContainerStatusPBImpl; import org.apache.hadoop.yarn.server.api.protocolrecords.impl.pb @@ -56,6 +59,23 @@ import org.junit.Test; public class TestProtocolRecords { @Test + public void testResource() { + final long mem = 123; + final int vcores = 456; + final Resource r = Resource.newInstance(mem, vcores); + // should be a lightweight SimpleResource which is a private inner class + // so just verify it's not the heavyweight pb impl. + Assert.assertFalse(r instanceof ResourcePBImpl); + Assert.assertEquals(mem, r.getMemorySize()); + Assert.assertEquals(vcores, r.getVirtualCores()); + + ResourceProto proto = ProtoUtils.convertToProtoFormat(r); + Assert.assertEquals(mem, proto.getMemory()); + Assert.assertEquals(vcores, proto.getVirtualCores()); + Assert.assertEquals(r, ProtoUtils.convertFromProtoFormat(proto)); + } + + @Test public void testNMContainerStatus() { ApplicationId appId = ApplicationId.newInstance(123456789, 1); ApplicationAttemptId attemptId = ApplicationAttemptId.newInstance(appId, 1); http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java index 272c265..0e11dce 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java @@ -44,6 +44,7 @@ import org.apache.hadoop.yarn.api.records.ApplicationAttemptId; import org.apache.hadoop.yarn.api.records.ApplicationId; import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.api.records.Resource; +import org.apache.hadoop.yarn.api.records.impl.pb.ProtoUtils; import org.apache.hadoop.yarn.api.records.impl.pb.ResourcePBImpl; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.proto.YarnProtos.ResourceProto; @@ -365,7 +366,7 @@ public class NMLeveldbStateStoreService extends NMStateStoreService { try { // New value will overwrite old values for the same key batch.put(bytes(keyResChng), - ((ResourcePBImpl) capability).getProto().toByteArray()); + ProtoUtils.convertToProtoFormat(capability).toByteArray()); batch.put(bytes(keyVersion), bytes(Integer.toString(containerVersion))); db.write(batch); } finally { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5b28c03/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/ContainerTokenIdentifierForTest.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/ContainerTokenIdentifierForTest.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/ContainerTokenIdentifierForTest.java index 7e8004d..99b3be5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/ContainerTokenIdentifierForTest.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/ContainerTokenIdentifierForTest.java @@ -33,6 +33,7 @@ import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.api.records.impl.pb.ContainerIdPBImpl; import org.apache.hadoop.yarn.api.records.impl.pb.LogAggregationContextPBImpl; import org.apache.hadoop.yarn.api.records.impl.pb.PriorityPBImpl; +import org.apache.hadoop.yarn.api.records.impl.pb.ProtoUtils; import org.apache.hadoop.yarn.api.records.impl.pb.ResourcePBImpl; import org.apache.hadoop.yarn.security.ContainerTokenIdentifier; import org.apache.hadoop.yarn.proto.YarnProtos.LogAggregationContextProto; @@ -60,7 +61,7 @@ public class ContainerTokenIdentifierForTest extends ContainerTokenIdentifier { builder.setNmHostAddr(hostName); builder.setAppSubmitter(appSubmitter); if (r != null) { - builder.setResource(((ResourcePBImpl)r).getProto()); + builder.setResource(ProtoUtils.convertToProtoFormat(r)); } builder.setExpiryTimeStamp(expiryTimeStamp); builder.setMasterKeyId(masterKeyId); @@ -91,7 +92,7 @@ public class ContainerTokenIdentifierForTest extends ContainerTokenIdentifier { ResourcePBImpl resource = (ResourcePBImpl)identifier.getResource(); if (resource != null) { - builder.setResource(resource.getProto()); + builder.setResource(ProtoUtils.convertToProtoFormat(resource)); } builder.setExpiryTimeStamp(identifier.getExpiryTimeStamp()); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
