diff --git 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-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java index d0663d5..9ee8b80 100644 --- 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-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java @@ -286,18 +286,36 @@ private void recover() throws IOException, URISyntaxException { RecoveredApplicationsState appsState = stateStore.loadApplicationsState(); for (ContainerManagerApplicationProto proto : appsState.getApplications()) { + if (LOG.isDebugEnabled()) { + LOG.debug("Recovering application with state: " + proto.toString()); + } recoverApplication(proto); } for (RecoveredContainerState rcs : stateStore.loadContainersState()) { + if (LOG.isDebugEnabled()) { + LOG.debug("Recovering container with state: "); + LOG.debug("Diagnostics: " + rcs.getDiagnostics()); + LOG.debug("Exit Code: " + rcs.getExitCode()); + LOG.debug("Start Request: " + rcs.getStartRequest()); + LOG.debug("Status: " + rcs.getStatus()); + } + recoverContainer(rcs); } String diagnostic = "Application marked finished during recovery"; for (ApplicationId appId : appsState.getFinishedApplications()) { + + if (LOG.isDebugEnabled()) { + LOG.debug("Application marked finished during recovery: " + appId); + } + dispatcher.getEventHandler().handle( new ApplicationFinishEvent(appId, diagnostic)); } + } else { + LOG.info("Not a recoverable state store. Nothing to recover."); } } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java index 89c71bb..1067f1f 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java @@ -248,6 +248,11 @@ private RecoveredContainerState loadContainerState(ContainerId containerId, @Override public void storeContainer(ContainerId containerId, StartContainerRequest startRequest) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("storeContainer.containerId: " + containerId ); + LOG.debug("storeContainer.startRequest: " + startRequest); + } + String key = CONTAINERS_KEY_PREFIX + containerId.toString() + CONTAINER_REQUEST_KEY_SUFFIX; try { @@ -261,6 +266,11 @@ public void storeContainer(ContainerId containerId, @Override public void storeContainerDiagnostics(ContainerId containerId, StringBuilder diagnostics) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("storeContainerDiagnostics.containerId: " + containerId); + LOG.debug("storeContainerDiagnostics.diagnostics: " + diagnostics); + } + String key = CONTAINERS_KEY_PREFIX + containerId.toString() + CONTAINER_DIAGS_KEY_SUFFIX; try { @@ -273,6 +283,10 @@ public void storeContainerDiagnostics(ContainerId containerId, @Override public void storeContainerLaunched(ContainerId containerId) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("storeContainerLaunched.containerId: " + containerId); + } + String key = CONTAINERS_KEY_PREFIX + containerId.toString() + CONTAINER_LAUNCHED_KEY_SUFFIX; try { @@ -285,6 +299,11 @@ public void storeContainerLaunched(ContainerId containerId) @Override public void storeContainerResourceChanged(ContainerId containerId, Resource capability) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("storeContainerResourceChanged.containerId: " + containerId); + LOG.debug("storeContainerResourceChanged.capability: " + capability); + } + String key = CONTAINERS_KEY_PREFIX + containerId.toString() + CONTAINER_RESOURCE_CHANGED_KEY_SUFFIX; try { @@ -299,6 +318,10 @@ public void storeContainerResourceChanged(ContainerId containerId, @Override public void storeContainerKilled(ContainerId containerId) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("storeContainerKilled.containerId: " + containerId); + } + String key = CONTAINERS_KEY_PREFIX + containerId.toString() + CONTAINER_KILLED_KEY_SUFFIX; try { @@ -311,6 +334,10 @@ public void storeContainerKilled(ContainerId containerId) @Override public void storeContainerCompleted(ContainerId containerId, int exitCode) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("storeContainerCompleted.containerId: " + containerId); + } + String key = CONTAINERS_KEY_PREFIX + containerId.toString() + CONTAINER_EXIT_CODE_KEY_SUFFIX; try { @@ -323,6 +350,10 @@ public void storeContainerCompleted(ContainerId containerId, @Override public void removeContainer(ContainerId containerId) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("removeContainer.containerId: " + containerId); + } + String keyPrefix = CONTAINERS_KEY_PREFIX + containerId.toString(); try { WriteBatch batch = db.createWriteBatch(); @@ -389,6 +420,11 @@ public RecoveredApplicationsState loadApplicationsState() @Override public void storeApplication(ApplicationId appId, ContainerManagerApplicationProto p) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("storeApplication.appId: " + appId); + LOG.debug("storeApplication.proto: " + p); + } + String key = APPLICATIONS_KEY_PREFIX + appId; try { db.put(bytes(key), p.toByteArray()); @@ -400,6 +436,10 @@ public void storeApplication(ApplicationId appId, @Override public void storeFinishedApplication(ApplicationId appId) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("storeFinishedApplication.appId: " + appId); + } + String key = FINISHED_APPS_KEY_PREFIX + appId; try { db.put(bytes(key), new byte[0]); @@ -411,6 +451,10 @@ public void storeFinishedApplication(ApplicationId appId) @Override public void removeApplication(ApplicationId appId) throws IOException { + if (LOG.isDebugEnabled()) { + LOG.debug("removeApplication.appId: " + appId); + } + try { WriteBatch batch = db.createWriteBatch(); try {