|
@@ -82,36 +82,39 @@ public class MockAMLauncher extends ApplicationMasterLauncher
|
|
@Override
|
|
@Override
|
|
@SuppressWarnings("unchecked")
|
|
@SuppressWarnings("unchecked")
|
|
public void handle(AMLauncherEvent event) {
|
|
public void handle(AMLauncherEvent event) {
|
|
- if (AMLauncherEventType.LAUNCH == event.getType()) {
|
|
|
|
- ApplicationId appId =
|
|
|
|
- event.getAppAttempt().getAppAttemptId().getApplicationId();
|
|
|
|
-
|
|
|
|
- // find AMSimulator
|
|
|
|
- AMSimulator ams = appIdAMSim.get(appId);
|
|
|
|
- if (ams != null) {
|
|
|
|
- try {
|
|
|
|
- Container amContainer = event.getAppAttempt().getMasterContainer();
|
|
|
|
-
|
|
|
|
- setupAMRMToken(event.getAppAttempt());
|
|
|
|
-
|
|
|
|
- // Notify RMAppAttempt to change state
|
|
|
|
- super.context.getDispatcher().getEventHandler().handle(
|
|
|
|
- new RMAppAttemptEvent(event.getAppAttempt().getAppAttemptId(),
|
|
|
|
- RMAppAttemptEventType.LAUNCHED));
|
|
|
|
-
|
|
|
|
- ams.notifyAMContainerLaunched(
|
|
|
|
- event.getAppAttempt().getMasterContainer());
|
|
|
|
- LOG.info("Notify AM launcher launched:" + amContainer.getId());
|
|
|
|
-
|
|
|
|
- se.getNmMap().get(amContainer.getNodeId())
|
|
|
|
- .addNewContainer(amContainer, 100000000L);
|
|
|
|
-
|
|
|
|
- return;
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- throw new YarnRuntimeException(e);
|
|
|
|
- }
|
|
|
|
|
|
+ ApplicationId appId =
|
|
|
|
+ event.getAppAttempt().getAppAttemptId().getApplicationId();
|
|
|
|
+ // find AMSimulator
|
|
|
|
+ AMSimulator ams = appIdAMSim.get(appId);
|
|
|
|
+ if (ams == null) {
|
|
|
|
+ throw new YarnRuntimeException(
|
|
|
|
+ "Didn't find any AMSimulator for applicationId=" + appId);
|
|
|
|
+ }
|
|
|
|
+ Container amContainer = event.getAppAttempt().getMasterContainer();
|
|
|
|
+ switch (event.getType()) {
|
|
|
|
+ case LAUNCH:
|
|
|
|
+ try {
|
|
|
|
+ setupAMRMToken(event.getAppAttempt());
|
|
|
|
+ // Notify RMAppAttempt to change state
|
|
|
|
+ super.context.getDispatcher().getEventHandler().handle(
|
|
|
|
+ new RMAppAttemptEvent(event.getAppAttempt().getAppAttemptId(),
|
|
|
|
+ RMAppAttemptEventType.LAUNCHED));
|
|
|
|
+
|
|
|
|
+ ams.notifyAMContainerLaunched(
|
|
|
|
+ event.getAppAttempt().getMasterContainer());
|
|
|
|
+ LOG.info("Notify AM launcher launched:" + amContainer.getId());
|
|
|
|
+
|
|
|
|
+ se.getNmMap().get(amContainer.getNodeId())
|
|
|
|
+ .addNewContainer(amContainer, -1);
|
|
|
|
+ return;
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new YarnRuntimeException(e);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ case CLEANUP:
|
|
|
|
+ se.getNmMap().get(amContainer.getNodeId())
|
|
|
|
+ .cleanupContainer(amContainer.getId());
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
throw new YarnRuntimeException(
|
|
throw new YarnRuntimeException(
|
|
"Didn't find any AMSimulator for applicationId=" + appId);
|
|
"Didn't find any AMSimulator for applicationId=" + appId);
|
|
}
|
|
}
|