private void rejectApplicationWithMessage(ApplicationId applicationId, String msg) { LOG.info(msg); rmContext.getDispatcher().getEventHandler().handle(new RMAppEvent( applicationId, RMAppEventType.APP_REJECTED, msg)); }
@Override public void handle(RMAppEvent event) { ApplicationId appID = event.getApplicationId(); RMApp rmApp = this.rmContext.getRMApps().get(appID); if (rmApp != null) { try { rmApp.handle(event); } catch (Throwable t) { LOG.error("Error in handling event type " + event.getType() + " for application " + appID, t); } } } }
public void transition(RMAppImpl app, RMAppEvent event) { app.diagnostics.append(event.getDiagnosticMsg()); super.transition(app, event); }; }
switch (event.getType()) { case APP_REJECTED: case ATTEMPT_FINISHED: case ATTEMPT_KILLED: diags = event.getDiagnosticMsg(); break; case ATTEMPT_FAILED:
@Override public boolean matches(Object o) { RMAppEvent event = (RMAppEvent) o; return event.getType() == RMAppEventType.ATTEMPT_FAILED; } };
/** * Log the audit event for kill by client. * @param event The {@link RMAppEvent} to be logged */ static void auditLogKillEvent(RMAppEvent event) { if (event instanceof RMAppKillByClientEvent) { RMAppKillByClientEvent killEvent = (RMAppKillByClientEvent) event; UserGroupInformation callerUGI = killEvent.getCallerUGI(); String userName = null; if (callerUGI != null) { userName = callerUGI.getShortUserName(); } InetAddress remoteIP = killEvent.getIp(); RMAuditLogger.logSuccess(userName, AuditConstants.KILL_APP_REQUEST, "RMAppImpl", event.getApplicationId(), remoteIP); } }
@Override public void transition(RMAppImpl app, RMAppEvent event) { if(app.launchTime == 0) { LOG.info("update the launch time for applicationId: "+ app.getApplicationId()+", attemptId: "+ app.getCurrentAppAttempt().getAppAttemptId()+ "launchTime: "+event.getTimestamp()); app.launchTime = event.getTimestamp(); } } }
switch (event.getType()) { case APP_REJECTED: case ATTEMPT_FINISHED: case ATTEMPT_KILLED: diags = event.getDiagnosticMsg(); break; case ATTEMPT_FAILED:
@Override public boolean matches(Object o) { RMAppEvent event = (RMAppEvent) o; return event.getType() == RMAppEventType.ATTEMPT_FAILED; } };
/** * Log the audit event for kill by client. * * @param event * The {@link RMAppEvent} to be logged */ static void auditLogKillEvent(RMAppEvent event) { if (event instanceof RMAppKillByClientEvent) { RMAppKillByClientEvent killEvent = (RMAppKillByClientEvent) event; UserGroupInformation callerUGI = killEvent.getCallerUGI(); String userName = null; if (callerUGI != null) { userName = callerUGI.getShortUserName(); } InetAddress remoteIP = killEvent.getIp(); RMAuditLogger.logSuccess(userName, AuditConstants.KILL_APP_REQUEST, "RMAppImpl", event.getApplicationId(), remoteIP); } }
@Override public RMStateStoreState transition(RMStateStore store, RMStateStoreEvent event) { if (!(event instanceof RMStateStoreAppEvent)) { // should never happen LOG.error("Illegal event type: " + event.getClass()); return RMStateStoreState.ACTIVE; } boolean isFenced = false; ApplicationStateData appState = ((RMStateStoreAppEvent) event).getAppState(); ApplicationId appId = appState.getApplicationSubmissionContext().getApplicationId(); LOG.info("Storing info for app: " + appId); try { store.storeApplicationStateInternal(appId, appState); store.notifyApplication( new RMAppEvent(appId, RMAppEventType.APP_NEW_SAVED)); } catch (Exception e) { LOG.error("Error storing app: " + appId, e); if (e instanceof StoreLimitException) { store.notifyApplication( new RMAppEvent(appId, RMAppEventType.APP_SAVE_FAILED, e.getMessage())); } else { isFenced = store.notifyStoreOperationFailedInternal(e); } } return finalState(isFenced); };
@Override public void handle(RMAppEvent event) { ApplicationId appID = event.getApplicationId(); RMApp rmApp = this.rmContext.getRMApps().get(appID); if (rmApp != null) { try { rmApp.handle(event); } catch (Throwable t) { LOG.error("Error in handling event type " + event.getType() + " for application " + appID, t); } } } }
switch (event.getType()) { case APP_REJECTED: case ATTEMPT_FINISHED: case ATTEMPT_KILLED: diags = event.getDiagnosticMsg(); break; case ATTEMPT_FAILED:
@Override public void transition(RMAppImpl app, RMAppEvent event) { app.diagnostics.append(event.getDiagnosticMsg()); super.transition(app, event); }; }
@Override public void handle(RMAppEvent event) { //RMApp rmApp = this.rmContext.getRMApps().get(appID); setAppEventType(event.getType()); System.out.println("in handle routine " + getAppEventType().toString()); } }
@Override public void handle(Event rawEvent) { if (rawEvent instanceof RMAppEvent) { RMAppEvent event = (RMAppEvent) rawEvent; if (event.getApplicationId().equals(appId1)) { try { startBarrier.await(); endBarrier.await(); } catch (BrokenBarrierException e) { LOG.warn("Broken Barrier", e); } catch (InterruptedException e) { LOG.warn("Interrupted while awaiting barriers", e); } } } } };
@VisibleForTesting public synchronized void addApplication(ApplicationId applicationId, String queue, String user, boolean isAppRecovering) { SchedulerApplication<FifoAppAttempt> application = new SchedulerApplication<>(DEFAULT_QUEUE, user); applications.put(applicationId, application); metrics.submitApp(user); LOG.info("Accepted application " + applicationId + " from user: " + user + ", currently num of applications: " + applications.size()); if (isAppRecovering) { if (LOG.isDebugEnabled()) { LOG.debug(applicationId + " is recovering. Skip notifying APP_ACCEPTED"); } } else { rmContext.getDispatcher().getEventHandler() .handle(new RMAppEvent(applicationId, RMAppEventType.APP_ACCEPTED)); } }
@Override public void handle(RMAppEvent event) { ApplicationId appID = event.getApplicationId(); RMApp rmApp = this.rmContext.getRMApps().get(appID); if (rmApp != null) { try { rmApp.handle(event); } catch (Throwable t) { LOG.error("Error in handling event type " + event.getType() + " for application " + appID, t); } } } }
Event event = recordedEvents.get(0); RMAppEvent rmAppEvent = (RMAppEvent) event; assertEquals(RMAppEventType.APP_REJECTED, rmAppEvent.getType()); assertTrue("Diagnostic message does not match: " + rmAppEvent.getDiagnosticMsg(), rmAppEvent.getDiagnosticMsg() .matches("Cannot submit application application[\\d_]+ to queue " + "root.queueA because it has zero amount of resource "
public void transition(RMAppImpl app, RMAppEvent event) { app.diagnostics.append(event.getDiagnosticMsg()); super.transition(app, event); }; }