use of org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncherEvent in project hadoop by apache.
the class ContainerImpl method sendLaunchEvent.
// dispatcher not typed
@SuppressWarnings("unchecked")
@Override
public void sendLaunchEvent() {
ContainersLauncherEventType launcherEvent = ContainersLauncherEventType.LAUNCH_CONTAINER;
if (recoveredStatus == RecoveredContainerStatus.LAUNCHED) {
// try to recover a container that was previously launched
launcherEvent = ContainersLauncherEventType.RECOVER_CONTAINER;
}
containerLaunchStartTime = clock.getTime();
dispatcher.getEventHandler().handle(new ContainersLauncherEvent(this, launcherEvent));
}
use of org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncherEvent in project hadoop by apache.
the class DummyContainerManager method createContainersLauncher.
@Override
@SuppressWarnings("unchecked")
protected ContainersLauncher createContainersLauncher(Context context, ContainerExecutor exec) {
return new ContainersLauncher(context, super.dispatcher, exec, super.dirsHandler, this) {
@Override
public void handle(ContainersLauncherEvent event) {
Container container = event.getContainer();
ContainerId containerId = container.getContainerId();
switch(event.getType()) {
case LAUNCH_CONTAINER:
dispatcher.getEventHandler().handle(new ContainerEvent(containerId, ContainerEventType.CONTAINER_LAUNCHED));
break;
case CLEANUP_CONTAINER:
dispatcher.getEventHandler().handle(new ContainerExitEvent(containerId, ContainerEventType.CONTAINER_KILLED_ON_REQUEST, 0, "Container exited with exit code 0."));
break;
}
}
};
}
use of org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncherEvent in project hadoop by apache.
the class TestContainer method testLocalizationLaunch.
/**
* Verify container launch when all resources already cached.
*/
@Test
public void testLocalizationLaunch() throws Exception {
WrappedContainer wc = null;
try {
wc = new WrappedContainer(8, 314159265358979L, 4344, "yak");
assertEquals(ContainerState.NEW, wc.c.getContainerState());
wc.initContainer();
Map<Path, List<String>> localPaths = wc.localizeResources();
// all resources should be localized
assertEquals(ContainerState.SCHEDULED, wc.c.getContainerState());
assertNotNull(wc.c.getLocalizedResources());
for (Entry<Path, List<String>> loc : wc.c.getLocalizedResources().entrySet()) {
assertEquals(localPaths.remove(loc.getKey()), loc.getValue());
}
assertTrue(localPaths.isEmpty());
final WrappedContainer wcf = wc;
// verify container launch
ArgumentMatcher<ContainersLauncherEvent> matchesContainerLaunch = new ArgumentMatcher<ContainersLauncherEvent>() {
@Override
public boolean matches(Object o) {
ContainersLauncherEvent launchEvent = (ContainersLauncherEvent) o;
return wcf.c == launchEvent.getContainer();
}
};
verify(wc.launcherBus).handle(argThat(matchesContainerLaunch));
} finally {
if (wc != null) {
wc.finished();
}
}
}
use of org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncherEvent in project hadoop by apache.
the class ContainerImpl method sendRelaunchEvent.
// dispatcher not typed
@SuppressWarnings("unchecked")
private void sendRelaunchEvent() {
ContainersLauncherEventType launcherEvent = ContainersLauncherEventType.RELAUNCH_CONTAINER;
dispatcher.getEventHandler().handle(new ContainersLauncherEvent(this, launcherEvent));
}
use of org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncherEvent in project hadoop by apache.
the class TestContainerManagerRecovery method createContainerManager.
private ContainerManagerImpl createContainerManager(Context context) {
final LogHandler logHandler = mock(LogHandler.class);
final ResourceLocalizationService rsrcSrv = new ResourceLocalizationService(null, null, null, null, context) {
@Override
public void serviceInit(Configuration conf) throws Exception {
}
@Override
public void serviceStart() throws Exception {
// do nothing
}
@Override
public void serviceStop() throws Exception {
// do nothing
}
@Override
public void handle(LocalizationEvent event) {
// do nothing
}
};
final ContainersLauncher launcher = new ContainersLauncher(context, null, null, null, null) {
@Override
public void handle(ContainersLauncherEvent event) {
// do nothing
}
};
return new ContainerManagerImpl(context, mock(ContainerExecutor.class), mock(DeletionService.class), mock(NodeStatusUpdater.class), metrics, null) {
@Override
protected LogHandler createLogHandler(Configuration conf, Context context, DeletionService deletionService) {
return logHandler;
}
@Override
protected ResourceLocalizationService createResourceLocalizationService(ContainerExecutor exec, DeletionService deletionContext, Context context) {
return rsrcSrv;
}
@Override
protected ContainersLauncher createContainersLauncher(Context context, ContainerExecutor exec) {
return launcher;
}
@Override
public void setBlockNewContainerRequests(boolean blockNewContainerRequests) {
// do nothing
}
@Override
public NMTimelinePublisher createNMTimelinePublisher(Context context) {
return null;
}
};
}
Aggregations