YARN-536. Removed the unused objects ContainerStatus and ContainerStatus from Container which also don't belong to the container. Contributed by Xuan Gong.

svn merge --ignore-ancestry -c 1464271 ../../trunk/


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1464272 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Vinod Kumar Vavilapalli 2013-04-04 03:43:04 +00:00
parent b36a96aea2
commit 2190ac6fd9
10 changed files with 25 additions and 129 deletions

View File

@ -11,6 +11,9 @@ Release 2.0.5-beta - UNRELEASED
YARN-440. Flatten RegisterNodeManagerResponse. (Xuan Gong via sseth)
YARN-536. Removed the unused objects ContainerStatus and ContainerStatus from
Container which also don't belong to the container. (Xuan Gong via vinodkv)
NEW FEATURES
IMPROVEMENTS

View File

@ -124,18 +124,6 @@ public interface Container extends Comparable<Container> {
@Unstable
void setPriority(Priority priority);
/**
* Get the current <code>ContainerState</code> of the container.
* @return current <code>ContainerState</code> of the container
*/
@Public
@Stable
ContainerState getState();
@Private
@Unstable
void setState(ContainerState state);
/**
* Get the <code>ContainerToken</code> for the container.
* @return <code>ContainerToken</code> for the container
@ -147,16 +135,4 @@ public interface Container extends Comparable<Container> {
@Private
@Unstable
void setContainerToken(ContainerToken containerToken);
/**
* Get the <code>ContainerStatus</code> of the container.
* @return <code>ContainerStatus</code> of the container
*/
@Public
@Stable
ContainerStatus getContainerStatus();
@Private
@Unstable
void setContainerStatus(ContainerStatus containerStatus);
}

View File

@ -21,8 +21,6 @@ package org.apache.hadoop.yarn.api.records.impl.pb;
import org.apache.hadoop.security.proto.SecurityProtos.TokenProto;
import org.apache.hadoop.yarn.api.records.Container;
import org.apache.hadoop.yarn.api.records.ContainerId;
import org.apache.hadoop.yarn.api.records.ContainerState;
import org.apache.hadoop.yarn.api.records.ContainerStatus;
import org.apache.hadoop.yarn.api.records.ContainerToken;
import org.apache.hadoop.yarn.api.records.NodeId;
import org.apache.hadoop.yarn.api.records.Priority;
@ -31,12 +29,9 @@ import org.apache.hadoop.yarn.api.records.Resource;
import org.apache.hadoop.yarn.proto.YarnProtos.ContainerIdProto;
import org.apache.hadoop.yarn.proto.YarnProtos.ContainerProto;
import org.apache.hadoop.yarn.proto.YarnProtos.ContainerProtoOrBuilder;
import org.apache.hadoop.yarn.proto.YarnProtos.ContainerStateProto;
import org.apache.hadoop.yarn.proto.YarnProtos.ContainerStatusProto;
import org.apache.hadoop.yarn.proto.YarnProtos.NodeIdProto;
import org.apache.hadoop.yarn.proto.YarnProtos.PriorityProto;
import org.apache.hadoop.yarn.proto.YarnProtos.ResourceProto;
import org.apache.hadoop.yarn.util.ProtoUtils;
public class ContainerPBImpl extends ProtoBase<ContainerProto> implements Container {
@ -49,7 +44,6 @@ public class ContainerPBImpl extends ProtoBase<ContainerProto> implements Contai
private Resource resource = null;
private Priority priority = null;
private ContainerToken containerToken = null;
private ContainerStatus containerStatus = null;
public ContainerPBImpl() {
builder = ContainerProto.newBuilder();
@ -94,11 +88,6 @@ public class ContainerPBImpl extends ProtoBase<ContainerProto> implements Contai
builder.getContainerToken())) {
builder.setContainerToken(convertToProtoFormat(this.containerToken));
}
if (this.containerStatus != null
&& !((ContainerStatusPBImpl) this.containerStatus).getProto().equals(
builder.getContainerStatus())) {
builder.setContainerStatus(convertToProtoFormat(this.containerStatus));
}
}
private void mergeLocalToProto() {
@ -115,26 +104,7 @@ public class ContainerPBImpl extends ProtoBase<ContainerProto> implements Contai
}
viaProto = false;
}
@Override
public ContainerState getState() {
ContainerProtoOrBuilder p = viaProto ? proto : builder;
if (!p.hasState()) {
return null;
}
return convertFromProtoFormat(p.getState());
}
@Override
public void setState(ContainerState state) {
maybeInitBuilder();
if (state == null) {
builder.clearState();
return;
}
builder.setState(convertToProtoFormat(state));
}
@Override
public ContainerId getId() {
ContainerProtoOrBuilder p = viaProto ? proto : builder;
@ -260,35 +230,6 @@ public class ContainerPBImpl extends ProtoBase<ContainerProto> implements Contai
this.containerToken = containerToken;
}
@Override
public ContainerStatus getContainerStatus() {
ContainerProtoOrBuilder p = viaProto ? proto : builder;
if (this.containerStatus != null) {
return this.containerStatus;
}
if (!p.hasContainerStatus()) {
return null;
}
this.containerStatus = convertFromProtoFormat(p.getContainerStatus());
return this.containerStatus;
}
@Override
public void setContainerStatus(ContainerStatus containerStatus) {
maybeInitBuilder();
if (containerStatus == null)
builder.clearContainerStatus();
this.containerStatus = containerStatus;
}
private ContainerStateProto convertToProtoFormat(ContainerState e) {
return ProtoUtils.convertToProtoFormat(e);
}
private ContainerState convertFromProtoFormat(ContainerStateProto e) {
return ProtoUtils.convertFromProtoFormat(e);
}
private ContainerIdPBImpl convertFromProtoFormat(ContainerIdProto p) {
return new ContainerIdPBImpl(p);
}
@ -329,14 +270,6 @@ public class ContainerPBImpl extends ProtoBase<ContainerProto> implements Contai
return ((ContainerTokenPBImpl)t).getProto();
}
private ContainerStatusPBImpl convertFromProtoFormat(ContainerStatusProto p) {
return new ContainerStatusPBImpl(p);
}
private ContainerStatusProto convertToProtoFormat(ContainerStatus t) {
return ((ContainerStatusPBImpl)t).getProto();
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Container: [");
@ -345,9 +278,7 @@ public class ContainerPBImpl extends ProtoBase<ContainerProto> implements Contai
sb.append("NodeHttpAddress: ").append(getNodeHttpAddress()).append(", ");
sb.append("Resource: ").append(getResource()).append(", ");
sb.append("Priority: ").append(getPriority()).append(", ");
sb.append("State: ").append(getState()).append(", ");
sb.append("Token: ").append(getContainerToken()).append(", ");
sb.append("Status: ").append(getContainerStatus());
sb.append("]");
return sb.toString();
}
@ -357,16 +288,7 @@ public class ContainerPBImpl extends ProtoBase<ContainerProto> implements Contai
public int compareTo(Container other) {
if (this.getId().compareTo(other.getId()) == 0) {
if (this.getNodeId().compareTo(other.getNodeId()) == 0) {
if (this.getResource().compareTo(other.getResource()) == 0) {
if (this.getState().compareTo(other.getState()) == 0) {
//ContainerToken
return this.getState().compareTo(other.getState());
} else {
return this.getState().compareTo(other.getState());
}
} else {
return this.getResource().compareTo(other.getResource());
}
return this.getResource().compareTo(other.getResource());
} else {
return this.getNodeId().compareTo(other.getNodeId());
}

View File

@ -67,9 +67,7 @@ message ContainerProto {
optional string node_http_address = 3;
optional ResourceProto resource = 4;
optional PriorityProto priority = 5;
optional ContainerStateProto state = 6;
optional hadoop.common.TokenProto container_token = 7;
optional ContainerStatusProto container_status = 8;
optional hadoop.common.TokenProto container_token = 6;
}
enum YarnApplicationStateProto {

View File

@ -608,7 +608,6 @@ public class ApplicationMaster {
+ ", containerNode=" + allocatedContainer.getNodeId().getHost()
+ ":" + allocatedContainer.getNodeId().getPort()
+ ", containerNodeURI=" + allocatedContainer.getNodeHttpAddress()
+ ", containerState" + allocatedContainer.getState()
+ ", containerResourceMemory"
+ allocatedContainer.getResource().getMemory());
// + ", containerToken"

View File

@ -246,11 +246,6 @@ public class BuilderUtils {
container.setNodeHttpAddress(nodeHttpAddress);
container.setResource(resource);
container.setPriority(priority);
container.setState(ContainerState.NEW);
ContainerStatus containerStatus = Records.newRecord(ContainerStatus.class);
containerStatus.setContainerId(containerId);
containerStatus.setState(ContainerState.NEW);
container.setContainerStatus(containerStatus);
container.setContainerToken(containerToken);
return container;
}

View File

@ -288,14 +288,9 @@ public class RMContainerImpl implements RMContainer {
public void transition(RMContainerImpl container, RMContainerEvent event) {
RMContainerFinishedEvent finishedEvent = (RMContainerFinishedEvent) event;
// Update container-status for diagnostics. Today we completely
// replace it on finish. We may just need to update diagnostics.
container.container.setContainerStatus(finishedEvent
.getRemoteContainerStatus());
// Inform AppAttempt
container.eventHandler.handle(new RMAppAttemptContainerFinishedEvent(
container.appAttemptId, container.container.getContainerStatus()));
container.appAttemptId, finishedEvent.getRemoteContainerStatus()));
}
}

View File

@ -26,7 +26,6 @@ import java.util.Map;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.Container;
import org.apache.hadoop.yarn.api.records.ContainerState;
import org.apache.hadoop.yarn.api.records.ContainerStatus;
import org.apache.hadoop.yarn.api.records.NodeHealthStatus;
@ -71,11 +70,11 @@ public class MockNM {
this.resourceTracker = resourceTracker;
}
public void containerStatus(Container container) throws Exception {
public void containerStatus(ContainerStatus containerStatus) throws Exception {
Map<ApplicationId, List<ContainerStatus>> conts =
new HashMap<ApplicationId, List<ContainerStatus>>();
conts.put(container.getId().getApplicationAttemptId().getApplicationId(),
Arrays.asList(new ContainerStatus[] { container.getContainerStatus() }));
conts.put(containerStatus.getContainerId().getApplicationAttemptId().getApplicationId(),
Arrays.asList(new ContainerStatus[] { containerStatus }));
nodeHeartbeat(conts, true);
}

View File

@ -76,6 +76,9 @@ public class NodeManager implements ContainerManager {
final Map<ApplicationId, List<Container>> containers =
new HashMap<ApplicationId, List<Container>>();
final Map<Container, ContainerStatus> containerStatusMap =
new HashMap<Container, ContainerStatus>();
public NodeManager(String hostName, int containerManagerPort, int httpPort,
String rackName, Resource capability,
ResourceTrackerService resourceTrackerService, RMContext rmContext)
@ -137,7 +140,7 @@ public class NodeManager implements ContainerManager {
List<ContainerStatus> containerStatuses = new ArrayList<ContainerStatus>();
for (List<Container> appContainers : containers.values()) {
for (Container container : appContainers) {
containerStatuses.add(container.getContainerStatus());
containerStatuses.add(containerStatusMap.get(container));
}
}
return containerStatuses;
@ -189,8 +192,11 @@ public class NodeManager implements ContainerManager {
null, null // DKDC - Doesn't matter
);
ContainerStatus containerStatus =
BuilderUtils.newContainerStatus(container.getId(), ContainerState.NEW,
"", -1000);
applicationContainers.add(container);
containerStatusMap.put(container, containerStatus);
Resources.subtractFrom(available, containerLaunchContext.getResource());
Resources.addTo(used, containerLaunchContext.getResource());
@ -223,7 +229,9 @@ public class NodeManager implements ContainerManager {
List<Container> applicationContainers = containers.get(applicationId);
for (Container c : applicationContainers) {
if (c.getId().compareTo(containerID) == 0) {
c.setState(ContainerState.COMPLETE);
ContainerStatus containerStatus = containerStatusMap.get(c);
containerStatus.setState(ContainerState.COMPLETE);
containerStatusMap.put(c, containerStatus);
}
}
@ -277,8 +285,8 @@ public class NodeManager implements ContainerManager {
}
GetContainerStatusResponse response =
recordFactory.newRecordInstance(GetContainerStatusResponse.class);
if (container != null && container.getContainerStatus() != null) {
response.setStatus(container.getContainerStatus());
if (container != null && containerStatusMap.get(container).getState() != null) {
response.setStatus(containerStatusMap.get(container));
}
return response;
}

View File

@ -139,8 +139,9 @@ public class TestFifoScheduler {
Container c1 = allocated1.get(0);
Assert.assertEquals(GB, c1.getResource().getMemory());
c1.setState(ContainerState.COMPLETE);
nm1.containerStatus(c1);
ContainerStatus containerStatus = BuilderUtils.newContainerStatus(
c1.getId(), ContainerState.COMPLETE, "", 0);
nm1.containerStatus(containerStatus);
int waitCount = 0;
while (attempt1.getJustFinishedContainers().size() < 1
&& waitCount++ != 20) {