diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/NodeHeartbeatResponse.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/NodeHeartbeatResponse.java index 1498a0c..0266848 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/NodeHeartbeatResponse.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/NodeHeartbeatResponse.java @@ -26,48 +26,66 @@ import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.server.api.records.MasterKey; import org.apache.hadoop.yarn.server.api.records.NodeAction; +import org.apache.hadoop.yarn.util.Records; -public interface NodeHeartbeatResponse { - int getResponseId(); - NodeAction getNodeAction(); +/** + * Node Manager's heartbeat response. + */ +public abstract class NodeHeartbeatResponse { + public static NodeHeartbeatResponse newInstance() { + return Records.newRecord(NodeHeartbeatResponse.class); + } + + public abstract int getResponseId(); + + public abstract NodeAction getNodeAction(); + + public abstract List getContainersToCleanup(); + + public abstract List getContainersToBeRemovedFromNM(); + + public abstract List getApplicationsToCleanup(); - List getContainersToCleanup(); - List getContainersToBeRemovedFromNM(); + public abstract void setResponseId(int responseId); - List getApplicationsToCleanup(); + public abstract void setNodeAction(NodeAction action); - void setResponseId(int responseId); - void setNodeAction(NodeAction action); + public abstract MasterKey getContainerTokenMasterKey(); - MasterKey getContainerTokenMasterKey(); - void setContainerTokenMasterKey(MasterKey secretKey); - - MasterKey getNMTokenMasterKey(); - void setNMTokenMasterKey(MasterKey secretKey); + public abstract void setContainerTokenMasterKey(MasterKey secretKey); - void addAllContainersToCleanup(List containers); + public abstract MasterKey getNMTokenMasterKey(); + + public abstract void setNMTokenMasterKey(MasterKey secretKey); + + public abstract void addAllContainersToCleanup(List containers); // This tells NM to remove finished containers from its context. Currently, NM // will remove finished containers from its context only after AM has actually // received the finished containers in a previous allocate response - void addContainersToBeRemovedFromNM(List containers); - - void addAllApplicationsToCleanup(List applications); + public abstract void addContainersToBeRemovedFromNM( + List containers); + + public abstract void addAllApplicationsToCleanup( + List applications); + + public abstract long getNextHeartBeatInterval(); - long getNextHeartBeatInterval(); - void setNextHeartBeatInterval(long nextHeartBeatInterval); - - String getDiagnosticsMessage(); + public abstract void setNextHeartBeatInterval(long nextHeartBeatInterval); - void setDiagnosticsMessage(String diagnosticsMessage); + public abstract String getDiagnosticsMessage(); + + public abstract void setDiagnosticsMessage(String diagnosticsMessage); // Credentials (i.e. hdfs tokens) needed by NodeManagers for application // localizations and logAggreations. - Map getSystemCredentialsForApps(); + public abstract Map getSystemCredentialsForApps(); - void setSystemCredentialsForApps( + public abstract void setSystemCredentialsForApps( Map systemCredentials); - - boolean getAreNodeLabelsAcceptedByRM(); - void setAreNodeLabelsAcceptedByRM(boolean areNodeLabelsAcceptedByRM); + + public abstract boolean getAreNodeLabelsAcceptedByRM(); + + public abstract void setAreNodeLabelsAcceptedByRM( + boolean areNodeLabelsAcceptedByRM); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/RegisterNodeManagerResponse.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/RegisterNodeManagerResponse.java index c8678f6..159bae6 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/RegisterNodeManagerResponse.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/RegisterNodeManagerResponse.java @@ -20,32 +20,54 @@ import org.apache.hadoop.yarn.server.api.records.MasterKey; import org.apache.hadoop.yarn.server.api.records.NodeAction; +import org.apache.hadoop.yarn.util.Records; -public interface RegisterNodeManagerResponse { - MasterKey getContainerTokenMasterKey(); +/** + * Node Manager's register response. + */ +public abstract class RegisterNodeManagerResponse { + public static RegisterNodeManagerResponse newInstance( + MasterKey containerTokenMasterKey, MasterKey nMTokenMasterKey, + NodeAction nodeAction, long rmIdentifier, String diagnosticsMessage, + String rmVersion, boolean areNodeLabelsAcceptedByRM) { + RegisterNodeManagerResponse request = Records + .newRecord(RegisterNodeManagerResponse.class); + request.setContainerTokenMasterKey(containerTokenMasterKey); + request.setNMTokenMasterKey(nMTokenMasterKey); + request.setNodeAction(nodeAction); + request.setRMIdentifier(rmIdentifier); + request.setDiagnosticsMessage(diagnosticsMessage); + request.setRMVersion(rmVersion); + request.setAreNodeLabelsAcceptedByRM(areNodeLabelsAcceptedByRM); + return request; + } + + public abstract MasterKey getContainerTokenMasterKey(); + + public abstract void setContainerTokenMasterKey(MasterKey secretKey); + + public abstract MasterKey getNMTokenMasterKey(); - void setContainerTokenMasterKey(MasterKey secretKey); + public abstract void setNMTokenMasterKey(MasterKey secretKey); - MasterKey getNMTokenMasterKey(); + public abstract NodeAction getNodeAction(); - void setNMTokenMasterKey(MasterKey secretKey); + public abstract void setNodeAction(NodeAction nodeAction); - NodeAction getNodeAction(); + public abstract long getRMIdentifier(); - void setNodeAction(NodeAction nodeAction); + public abstract void setRMIdentifier(long rmIdentifier); - long getRMIdentifier(); + public abstract String getDiagnosticsMessage(); - void setRMIdentifier(long rmIdentifier); + public abstract void setDiagnosticsMessage(String diagnosticsMessage); - String getDiagnosticsMessage(); + public abstract void setRMVersion(String version); - void setDiagnosticsMessage(String diagnosticsMessage); + public abstract String getRMVersion(); - void setRMVersion(String version); + public abstract boolean getAreNodeLabelsAcceptedByRM(); - String getRMVersion(); - - boolean getAreNodeLabelsAcceptedByRM(); - void setAreNodeLabelsAcceptedByRM(boolean areNodeLabelsAcceptedByRM); + public abstract void setAreNodeLabelsAcceptedByRM( + boolean areNodeLabelsAcceptedByRM); } diff --git 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 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 e27d8ca..61e1a61 100644 --- 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 +++ 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 @@ -29,7 +29,6 @@ import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.api.records.impl.pb.ApplicationIdPBImpl; import org.apache.hadoop.yarn.api.records.impl.pb.ContainerIdPBImpl; -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.proto.YarnProtos.ApplicationIdProto; import org.apache.hadoop.yarn.proto.YarnProtos.ContainerIdProto; @@ -42,15 +41,16 @@ import org.apache.hadoop.yarn.server.api.records.MasterKey; import org.apache.hadoop.yarn.server.api.records.NodeAction; import org.apache.hadoop.yarn.server.api.records.impl.pb.MasterKeyPBImpl; - - -public class NodeHeartbeatResponsePBImpl extends - ProtoBase implements NodeHeartbeatResponse { - NodeHeartbeatResponseProto proto = NodeHeartbeatResponseProto.getDefaultInstance(); - NodeHeartbeatResponseProto.Builder builder = null; - boolean viaProto = false; - +/** + * PBImpl class for NodeHeartbeatResponse. + */ +public class NodeHeartbeatResponsePBImpl extends NodeHeartbeatResponse { + private NodeHeartbeatResponseProto proto = NodeHeartbeatResponseProto + .getDefaultInstance(); + private NodeHeartbeatResponseProto.Builder builder = null; + private boolean viaProto = false; + private List containersToCleanup = null; private List containersToBeRemovedFromNM = null; private List applicationsToCleanup = null; @@ -58,7 +58,7 @@ private MasterKey containerTokenMasterKey = null; private MasterKey nmTokenMasterKey = null; - + public NodeHeartbeatResponsePBImpl() { builder = NodeHeartbeatResponseProto.newBuilder(); } @@ -101,17 +101,20 @@ private void mergeLocalToBuilder() { private void addSystemCredentialsToProto() { maybeInitBuilder(); builder.clearSystemCredentialsForApps(); - for (Map.Entry entry : systemCredentials.entrySet()) { - builder.addSystemCredentialsForApps(SystemCredentialsForAppsProto.newBuilder() - .setAppId(convertToProtoFormat(entry.getKey())) - .setCredentialsForApp(ProtoUtils.convertToProtoFormat( - entry.getValue().duplicate()))); + for (Map.Entry entry : systemCredentials + .entrySet()) { + builder.addSystemCredentialsForApps(SystemCredentialsForAppsProto + .newBuilder() + .setAppId(convertToProtoFormat(entry.getKey())) + .setCredentialsForApp( + ProtoUtils.convertToProtoFormat(entry.getValue().duplicate()))); } } private void mergeLocalToProto() { - if (viaProto) + if (viaProto) { maybeInitBuilder(); + } mergeLocalToBuilder(); proto = builder.build(); viaProto = true; @@ -154,8 +157,9 @@ public MasterKey getContainerTokenMasterKey() { @Override public void setContainerTokenMasterKey(MasterKey masterKey) { maybeInitBuilder(); - if (masterKey == null) + if (masterKey == null) { builder.clearContainerTokenMasterKey(); + } this.containerTokenMasterKey = masterKey; } @@ -176,8 +180,9 @@ public MasterKey getNMTokenMasterKey() { @Override public void setNMTokenMasterKey(MasterKey masterKey) { maybeInitBuilder(); - if (masterKey == null) + if (masterKey == null) { builder.clearNmTokenMasterKey(); + } this.nmTokenMasterKey = masterKey; } @@ -259,18 +264,20 @@ private void initContainersToBeRemovedFromNM() { @Override public void addAllContainersToCleanup( - final List containersToCleanup) { - if (containersToCleanup == null) + final List addContainersToCleanup) { + if (addContainersToCleanup == null) { return; + } initContainersToCleanup(); - this.containersToCleanup.addAll(containersToCleanup); + this.containersToCleanup.addAll(addContainersToCleanup); } @Override public void addContainersToBeRemovedFromNM(final List containers) { - if (containers == null) + if (containers == null) { return; + } initContainersToBeRemovedFromNM(); this.containersToBeRemovedFromNM.addAll(containers); } @@ -278,15 +285,16 @@ public void addAllContainersToCleanup( private void addContainersToCleanupToProto() { maybeInitBuilder(); builder.clearContainersToCleanup(); - if (containersToCleanup == null) + if (containersToCleanup == null) { return; + } Iterable iterable = new Iterable() { @Override public Iterator iterator() { return new Iterator() { - Iterator iter = containersToCleanup.iterator(); + private Iterator iter = containersToCleanup.iterator(); @Override public boolean hasNext() { @@ -313,15 +321,17 @@ public void remove() { private void addContainersToBeRemovedFromNMToProto() { maybeInitBuilder(); builder.clearContainersToBeRemovedFromNm(); - if (containersToBeRemovedFromNM == null) + if (containersToBeRemovedFromNM == null) { return; + } Iterable iterable = new Iterable() { @Override public Iterator iterator() { return new Iterator() { - Iterator iter = containersToBeRemovedFromNM.iterator(); + private Iterator iter = containersToBeRemovedFromNM + .iterator(); @Override public boolean hasNext() { @@ -366,25 +376,28 @@ private void initApplicationsToCleanup() { @Override public void addAllApplicationsToCleanup( - final List applicationsToCleanup) { - if (applicationsToCleanup == null) + final List appsToCleanup) { + if (appsToCleanup == null) { return; + } initApplicationsToCleanup(); - this.applicationsToCleanup.addAll(applicationsToCleanup); + this.applicationsToCleanup.addAll(appsToCleanup); } private void addApplicationsToCleanupToProto() { maybeInitBuilder(); builder.clearApplicationsToCleanup(); - if (applicationsToCleanup == null) + if (applicationsToCleanup == null) { return; + } Iterable iterable = new Iterable() { @Override public Iterator iterator() { return new Iterator() { - Iterator iter = applicationsToCleanup.iterator(); + private Iterator iter = applicationsToCleanup + .iterator(); @Override public boolean hasNext() { @@ -420,24 +433,27 @@ public void remove() { private void initSystemCredentials() { NodeHeartbeatResponseProtoOrBuilder p = viaProto ? proto : builder; - List list = p.getSystemCredentialsForAppsList(); - this.systemCredentials = new HashMap (); + List list = p + .getSystemCredentialsForAppsList(); + this.systemCredentials = new HashMap(); for (SystemCredentialsForAppsProto c : list) { ApplicationId appId = convertFromProtoFormat(c.getAppId()); - ByteBuffer byteBuffer = ProtoUtils.convertFromProtoFormat(c.getCredentialsForApp()); + ByteBuffer byteBuffer = ProtoUtils.convertFromProtoFormat(c + .getCredentialsForApp()); this.systemCredentials.put(appId, byteBuffer); } } @Override public void setSystemCredentialsForApps( - Map systemCredentials) { - if (systemCredentials == null || systemCredentials.isEmpty()) { + Map updatedSystemCredentials) { + if (updatedSystemCredentials == null + || updatedSystemCredentials.isEmpty()) { return; } maybeInitBuilder(); this.systemCredentials = new HashMap(); - this.systemCredentials.putAll(systemCredentials); + this.systemCredentials.putAll(updatedSystemCredentials); } @Override diff --git 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 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 391d00d..eb5bfca 100644 --- 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 +++ 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 @@ -19,7 +19,6 @@ package org.apache.hadoop.yarn.server.api.protocolrecords.impl.pb; -import org.apache.hadoop.yarn.api.records.impl.pb.ProtoBase; import org.apache.hadoop.yarn.proto.YarnServerCommonProtos.MasterKeyProto; import org.apache.hadoop.yarn.proto.YarnServerCommonProtos.NodeActionProto; import org.apache.hadoop.yarn.proto.YarnServerCommonServiceProtos.RegisterNodeManagerResponseProto; @@ -28,31 +27,36 @@ import org.apache.hadoop.yarn.server.api.records.MasterKey; import org.apache.hadoop.yarn.server.api.records.NodeAction; import org.apache.hadoop.yarn.server.api.records.impl.pb.MasterKeyPBImpl; - - -public class RegisterNodeManagerResponsePBImpl extends ProtoBase implements RegisterNodeManagerResponse { - RegisterNodeManagerResponseProto proto = RegisterNodeManagerResponseProto.getDefaultInstance(); - RegisterNodeManagerResponseProto.Builder builder = null; - boolean viaProto = false; - +/** + * PBImpl class for RegisterNodeManagerResponse. + */ +public class RegisterNodeManagerResponsePBImpl extends + RegisterNodeManagerResponse { + private RegisterNodeManagerResponseProto proto = + RegisterNodeManagerResponseProto.getDefaultInstance(); + private RegisterNodeManagerResponseProto.Builder builder = null; + private boolean viaProto = false; + private MasterKey containerTokenMasterKey = null; private MasterKey nmTokenMasterKey = null; - + private boolean rebuild = false; - + public RegisterNodeManagerResponsePBImpl() { builder = RegisterNodeManagerResponseProto.newBuilder(); } - public RegisterNodeManagerResponsePBImpl(RegisterNodeManagerResponseProto proto) { + public RegisterNodeManagerResponsePBImpl( + RegisterNodeManagerResponseProto proto) { this.proto = proto; viaProto = true; } public RegisterNodeManagerResponseProto getProto() { - if (rebuild) + if (rebuild) { mergeLocalToProto(); + } proto = viaProto ? proto : builder.build(); viaProto = true; return proto; @@ -70,8 +74,9 @@ private void mergeLocalToBuilder() { } private void mergeLocalToProto() { - if (viaProto) + if (viaProto) { maybeInitBuilder(); + } mergeLocalToBuilder(); proto = builder.build(); rebuild = false; @@ -102,8 +107,9 @@ public MasterKey getContainerTokenMasterKey() { @Override public void setContainerTokenMasterKey(MasterKey masterKey) { maybeInitBuilder(); - if (masterKey == null) + if (masterKey == null) { builder.clearContainerTokenMasterKey(); + } this.containerTokenMasterKey = masterKey; rebuild = true; } @@ -125,8 +131,9 @@ public MasterKey getNMTokenMasterKey() { @Override public void setNMTokenMasterKey(MasterKey masterKey) { maybeInitBuilder(); - if (masterKey == null) + if (masterKey == null) { builder.clearNmTokenMasterKey(); + } this.nmTokenMasterKey = masterKey; rebuild = true; }