You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-commits@hadoop.apache.org by vi...@apache.org on 2013/06/18 08:25:10 UTC
svn commit: r1494033 - in
/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project: ./
hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/
hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protoco...
Author: vinodkv
Date: Tue Jun 18 06:25:09 2013
New Revision: 1494033
URL: http://svn.apache.org/r1494033
Log:
YARN-841. Move Auxiliary service to yarn-api, annotate and document it. Contributed by Vinod Kumar Vavilapalli.
svn merge --ignore-ancestry -c 1494031 ../../trunk/
Added:
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/server/
- copied from r1494031, hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/server/
Modified:
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/CHANGES.txt
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/StartContainerResponse.java
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainerResponsePBImpl.java
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerLaunchContext.java
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/NMClientImpl.java
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServicesEvent.java
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java
hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/CHANGES.txt?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/CHANGES.txt Tue Jun 18 06:25:09 2013
@@ -149,6 +149,9 @@ Release 2.1.0-beta - UNRELEASED
YARN-840. Moved ProtoUtils to yarn.api.records.pb.impl. (Jian He via
acmurthy)
+ YARN-841. Move Auxiliary service to yarn-api, annotate and document it.
+ (vinodkv)
+
NEW FEATURES
YARN-482. FS: Extend SchedulingMode to intermediate queues.
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/StartContainerResponse.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/StartContainerResponse.java?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/StartContainerResponse.java (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/StartContainerResponse.java Tue Jun 18 06:25:09 2013
@@ -42,32 +42,45 @@ public abstract class StartContainerResp
@Private
@Unstable
public static StartContainerResponse newInstance(
- Map<String, ByteBuffer> serviceResponses) {
+ Map<String, ByteBuffer> servicesMetaData) {
StartContainerResponse response =
Records.newRecord(StartContainerResponse.class);
- response.setAllServiceResponse(serviceResponses);
+ response.setAllServicesMetaData(servicesMetaData);
return response;
}
/**
- * <p>Get the responses from all auxiliary services running on the
- * <code>NodeManager</code>.</p>
- * <p>The responses are returned as a Map between the auxiliary service names
- * and their corresponding opaque blob <code>ByteBuffer</code>s</p>
- * @return a Map between the auxiliary service names and their outputs
+ * <p>
+ * Get the meta-data from all auxiliary services running on the
+ * <code>NodeManager</code>.
+ * </p>
+ * <p>
+ * The meta-data is returned as a Map between the auxiliary service names and
+ * their corresponding per service meta-data as an opaque blob
+ * <code>ByteBuffer</code>
+ * </p>
+ *
+ * <p>
+ * To be able to interpret the per-service meta-data, you should consult the
+ * documentation for the Auxiliary-service configured on the NodeManager
+ * </p>
+ *
+ * @return a Map between the names of auxiliary services and their
+ * corresponding meta-data
*/
@Public
@Stable
- public abstract Map<String, ByteBuffer> getAllServiceResponse();
+ public abstract Map<String, ByteBuffer> getAllServicesMetaData();
/**
* Set to the list of auxiliary services which have been started on the
* <code>NodeManager</code>. This is done only once when the
* <code>NodeManager</code> starts up
- * @param serviceResponses A map from auxiliary service names to the opaque
- * blob <code>ByteBuffer</code>s for that auxiliary service
+ * @param allServicesMetaData A map from auxiliary service names to the opaque
+ * blob <code>ByteBuffer</code> for that auxiliary service
*/
@Private
@Unstable
- public abstract void setAllServiceResponse(Map<String, ByteBuffer> serviceResponses);
+ public abstract void setAllServicesMetaData(
+ Map<String, ByteBuffer> allServicesMetaData);
}
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainerResponsePBImpl.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainerResponsePBImpl.java?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainerResponsePBImpl.java (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainerResponsePBImpl.java Tue Jun 18 06:25:09 2013
@@ -42,7 +42,7 @@ public class StartContainerResponsePBImp
StartContainerResponseProto.Builder builder = null;
boolean viaProto = false;
- private Map<String, ByteBuffer> serviceResponse = null;
+ private Map<String, ByteBuffer> servicesMetaData = null;
public StartContainerResponsePBImpl() {
builder = StartContainerResponseProto.newBuilder();
@@ -81,8 +81,8 @@ public class StartContainerResponsePBImp
}
private synchronized void mergeLocalToBuilder() {
- if (this.serviceResponse != null) {
- addServiceResponseToProto();
+ if (this.servicesMetaData != null) {
+ addServicesMetaDataToProto();
}
}
@@ -112,38 +112,38 @@ public class StartContainerResponsePBImp
@Override
- public synchronized Map<String, ByteBuffer> getAllServiceResponse() {
- initServiceResponse();
- return this.serviceResponse;
+ public synchronized Map<String, ByteBuffer> getAllServicesMetaData() {
+ initServicesMetaData();
+ return this.servicesMetaData;
}
@Override
- public synchronized void setAllServiceResponse(
- Map<String, ByteBuffer> serviceResponses) {
- if(serviceResponses == null) {
+ public synchronized void setAllServicesMetaData(
+ Map<String, ByteBuffer> servicesMetaData) {
+ if(servicesMetaData == null) {
return;
}
- initServiceResponse();
- this.serviceResponse.clear();
- this.serviceResponse.putAll(serviceResponses);
+ initServicesMetaData();
+ this.servicesMetaData.clear();
+ this.servicesMetaData.putAll(servicesMetaData);
}
- private synchronized void initServiceResponse() {
- if (this.serviceResponse != null) {
+ private synchronized void initServicesMetaData() {
+ if (this.servicesMetaData != null) {
return;
}
StartContainerResponseProtoOrBuilder p = viaProto ? proto : builder;
- List<StringBytesMapProto> list = p.getServiceResponseList();
- this.serviceResponse = new HashMap<String, ByteBuffer>();
+ List<StringBytesMapProto> list = p.getServicesMetaDataList();
+ this.servicesMetaData = new HashMap<String, ByteBuffer>();
for (StringBytesMapProto c : list) {
- this.serviceResponse.put(c.getKey(), convertFromProtoFormat(c.getValue()));
+ this.servicesMetaData.put(c.getKey(), convertFromProtoFormat(c.getValue()));
}
}
- private synchronized void addServiceResponseToProto() {
+ private synchronized void addServicesMetaDataToProto() {
maybeInitBuilder();
- builder.clearServiceResponse();
- if (serviceResponse == null)
+ builder.clearServicesMetaData();
+ if (servicesMetaData == null)
return;
Iterable<StringBytesMapProto> iterable = new Iterable<StringBytesMapProto>() {
@@ -151,7 +151,7 @@ public class StartContainerResponsePBImp
public synchronized Iterator<StringBytesMapProto> iterator() {
return new Iterator<StringBytesMapProto>() {
- Iterator<String> keyIter = serviceResponse.keySet().iterator();
+ Iterator<String> keyIter = servicesMetaData.keySet().iterator();
@Override
public synchronized void remove() {
@@ -161,7 +161,7 @@ public class StartContainerResponsePBImp
@Override
public synchronized StringBytesMapProto next() {
String key = keyIter.next();
- return StringBytesMapProto.newBuilder().setKey(key).setValue(convertToProtoFormat(serviceResponse.get(key))).build();
+ return StringBytesMapProto.newBuilder().setKey(key).setValue(convertToProtoFormat(servicesMetaData.get(key))).build();
}
@Override
@@ -171,6 +171,6 @@ public class StartContainerResponsePBImp
};
}
};
- builder.addAllServiceResponse(iterable);
+ builder.addAllServicesMetaData(iterable);
}
}
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerLaunchContext.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerLaunchContext.java?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerLaunchContext.java (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerLaunchContext.java Tue Jun 18 06:25:09 2013
@@ -25,6 +25,8 @@ import java.util.Map;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Stable;
import org.apache.hadoop.yarn.api.ContainerManagementProtocol;
+import org.apache.hadoop.yarn.server.api.ApplicationInitializationContext;
+import org.apache.hadoop.yarn.server.api.AuxiliaryService;
import org.apache.hadoop.yarn.util.Records;
/**
@@ -109,7 +111,19 @@ public abstract class ContainerLaunchCon
public abstract void setLocalResources(Map<String, LocalResource> localResources);
/**
- * Get application-specific binary <em>service data</em>.
+ * <p>
+ * Get application-specific binary <em>service data</em>. This is a map keyed
+ * by the name of each {@link AuxiliaryService} that is configured on a
+ * NodeManager and value correspond to the application specific data targeted
+ * for the keyed {@link AuxiliaryService}.
+ * </p>
+ *
+ * <p>
+ * This will be used to initialize this application on the specific
+ * {@link AuxiliaryService} running on the NodeManager by calling
+ * {@link AuxiliaryService#initializeApplication(ApplicationInitializationContext)}
+ * </p>
+ *
* @return application-specific binary <em>service data</em>
*/
@Public
@@ -117,9 +131,16 @@ public abstract class ContainerLaunchCon
public abstract Map<String, ByteBuffer> getServiceData();
/**
- * Set application-specific binary <em>service data</em>. All pre-existing Map
- * entries are preserved.
- * @param serviceData application-specific binary <em>service data</em>
+ * <p>
+ * Get application-specific binary <em>service data</em>. This is a map keyed
+ * by the name of each {@link AuxiliaryService} that is configured on a
+ * NodeManager and value correspond to the application specific data targeted
+ * for the keyed {@link AuxiliaryService}. All pre-existing Map entries are
+ * preserved.
+ * </p>
+ *
+ * @param serviceData
+ * application-specific binary <em>service data</em>
*/
@Public
@Stable
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto Tue Jun 18 06:25:09 2013
@@ -160,7 +160,7 @@ message StartContainerRequestProto {
}
message StartContainerResponseProto {
- repeated StringBytesMapProto service_response = 1;
+ repeated StringBytesMapProto services_meta_data = 1;
}
message StopContainerRequestProto {
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/NMClientImpl.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/NMClientImpl.java?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/NMClientImpl.java (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/NMClientImpl.java Tue Jun 18 06:25:09 2013
@@ -242,7 +242,7 @@ public class NMClientImpl extends NMClie
LOG.warn("Container " + containerId + " failed to start", e);
throw e;
}
- return startResponse.getAllServiceResponse();
+ return startResponse.getAllServicesMetaData();
}
public synchronized void stopContainer() throws YarnException,
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java Tue Jun 18 06:25:09 2013
@@ -32,9 +32,11 @@ import org.apache.hadoop.service.Abstrac
import org.apache.hadoop.service.Service;
import org.apache.hadoop.service.ServiceStateChangeListener;
import org.apache.hadoop.util.ReflectionUtils;
-import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.event.EventHandler;
+import org.apache.hadoop.yarn.server.api.ApplicationTerminationContext;
+import org.apache.hadoop.yarn.server.api.AuxiliaryService;
+import org.apache.hadoop.yarn.server.api.ApplicationInitializationContext;
public class AuxServices extends AbstractService
implements ServiceStateChangeListener, EventHandler<AuxServicesEvent> {
@@ -42,13 +44,13 @@ public class AuxServices extends Abstrac
private static final Log LOG = LogFactory.getLog(AuxServices.class);
protected final Map<String,AuxiliaryService> serviceMap;
- protected final Map<String,ByteBuffer> serviceMeta;
+ protected final Map<String,ByteBuffer> serviceMetaData;
public AuxServices() {
super(AuxServices.class.getName());
serviceMap =
Collections.synchronizedMap(new HashMap<String,AuxiliaryService>());
- serviceMeta =
+ serviceMetaData =
Collections.synchronizedMap(new HashMap<String,ByteBuffer>());
// Obtain services from configuration in init()
}
@@ -69,11 +71,11 @@ public class AuxServices extends Abstrac
* If a service has not been started no metadata will be available. The key
* is the name of the service as defined in the configuration.
*/
- public Map<String, ByteBuffer> getMeta() {
+ public Map<String, ByteBuffer> getMetaData() {
Map<String, ByteBuffer> metaClone = new HashMap<String, ByteBuffer>(
- serviceMeta.size());
- synchronized (serviceMeta) {
- for (Entry<String, ByteBuffer> entry : serviceMeta.entrySet()) {
+ serviceMetaData.size());
+ synchronized (serviceMetaData) {
+ for (Entry<String, ByteBuffer> entry : serviceMetaData.entrySet()) {
metaClone.put(entry.getKey(), entry.getValue().duplicate());
}
}
@@ -121,9 +123,9 @@ public class AuxServices extends Abstrac
String name = entry.getKey();
service.start();
service.registerServiceListener(this);
- ByteBuffer meta = service.getMeta();
+ ByteBuffer meta = service.getMetaData();
if(meta != null) {
- serviceMeta.put(name, meta);
+ serviceMetaData.put(name, meta);
}
}
super.serviceStart();
@@ -140,7 +142,7 @@ public class AuxServices extends Abstrac
}
}
serviceMap.clear();
- serviceMeta.clear();
+ serviceMetaData.clear();
}
} finally {
super.serviceStop();
@@ -167,12 +169,13 @@ public class AuxServices extends Abstrac
// TODO kill all containers waiting on Application
return;
}
- service.initApp(event.getUser(), event.getApplicationID(),
- event.getServiceData());
+ service.initializeApplication(new ApplicationInitializationContext(event
+ .getUser(), event.getApplicationID(), event.getServiceData()));
break;
case APPLICATION_STOP:
for (AuxiliaryService serv : serviceMap.values()) {
- serv.stopApp(event.getApplicationID());
+ serv.stopApplication(new ApplicationTerminationContext(event
+ .getApplicationID()));
}
break;
default:
@@ -180,18 +183,4 @@ public class AuxServices extends Abstrac
}
}
- public interface AuxiliaryService extends Service {
- void initApp(String user, ApplicationId appId, ByteBuffer data);
- void stopApp(ApplicationId appId);
- /**
- * Retreive metadata for this service. This is likely going to be contact
- * information so that applications can access the service remotely. Ideally
- * each service should provide a method to parse out the information to a usable
- * class. This will only be called after the services start method has finished.
- * the result may be cached.
- * @return metadata for this service that should be made avaiable to applications.
- */
- ByteBuffer getMeta();
- }
-
}
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServicesEvent.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServicesEvent.java?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServicesEvent.java (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServicesEvent.java Tue Jun 18 06:25:09 2013
@@ -22,7 +22,6 @@ import java.nio.ByteBuffer;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.event.AbstractEvent;
-import org.apache.hadoop.yarn.event.Event;
public class AuxServicesEvent extends AbstractEvent<AuxServicesEventType> {
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java Tue Jun 18 06:25:09 2013
@@ -491,8 +491,7 @@ public class ContainerManagerImpl extend
applicationID, containerID);
StartContainerResponse response =
- recordFactory.newRecordInstance(StartContainerResponse.class);
- response.setAllServiceResponse(auxiliaryServices.getMeta());
+ StartContainerResponse.newInstance(auxiliaryServices.getMetaData());
// TODO launchedContainer misplaced -> doesn't necessarily mean a container
// launch. A finished Application will not launch containers.
metrics.launchedContainer();
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java?rev=1494033&r1=1494032&r2=1494033&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java Tue Jun 18 06:25:09 2013
@@ -33,17 +33,19 @@ import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.service.AbstractService;
import org.apache.hadoop.service.Service;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.apache.hadoop.yarn.server.api.ApplicationInitializationContext;
+import org.apache.hadoop.yarn.server.api.ApplicationTerminationContext;
+import org.apache.hadoop.yarn.server.api.AuxiliaryService;
import org.junit.Test;
public class TestAuxServices {
private static final Log LOG = LogFactory.getLog(TestAuxServices.class);
- static class LightService extends AbstractService
- implements AuxServices.AuxiliaryService {
+ static class LightService extends AuxiliaryService implements Service
+ {
private final char idef;
private final int expected_appId;
private int remaining_init;
@@ -79,17 +81,18 @@ public class TestAuxServices {
super.serviceStop();
}
@Override
- public void initApp(String user, ApplicationId appId, ByteBuffer data) {
+ public void initializeApplication(ApplicationInitializationContext context) {
+ ByteBuffer data = context.getApplicationDataForService();
assertEquals(idef, data.getChar());
assertEquals(expected_appId, data.getInt());
- assertEquals(expected_appId, appId.getId());
+ assertEquals(expected_appId, context.getApplicationId().getId());
}
@Override
- public void stopApp(ApplicationId appId) {
- stoppedApps.add(appId.getId());
+ public void stopApplication(ApplicationTerminationContext context) {
+ stoppedApps.add(context.getApplicationId().getId());
}
@Override
- public ByteBuffer getMeta() {
+ public ByteBuffer getMetaData() {
return meta;
}
}
@@ -133,8 +136,8 @@ public class TestAuxServices {
AuxServicesEventType.APPLICATION_STOP, "user0", appId2, "Bsrv", null);
// verify all services got the stop event
aux.handle(event);
- Collection<AuxServices.AuxiliaryService> servs = aux.getServices();
- for (AuxServices.AuxiliaryService serv: servs) {
+ Collection<AuxiliaryService> servs = aux.getServices();
+ for (AuxiliaryService serv: servs) {
ArrayList<Integer> appIds = ((LightService)serv).getAppIdsStopped();
assertEquals("app not properly stopped", 1, appIds.size());
assertTrue("wrong app stopped", appIds.contains((Integer)66));
@@ -196,7 +199,7 @@ public class TestAuxServices {
assertEquals(STARTED, s.getServiceState());
}
- Map<String, ByteBuffer> meta = aux.getMeta();
+ Map<String, ByteBuffer> meta = aux.getMetaData();
assertEquals(2, meta.size());
assertEquals("A", new String(meta.get("Asrv").array()));
assertEquals("B", new String(meta.get("Bsrv").array()));