Repository: reef Updated Branches: refs/heads/master 076b98c9a -> 2332f40be
[REEF-1740] Better logging when registering Driver with YARN * Log the AM host, port, and tracking URL * Pass the tracking URL when unregistering the AM * Obtain tracking URL only once in the constructor * Minor refactoring in the `YarnContainerManager` code for readability JIRA: [REEF-1740](https://issues.apache.org/jira/browse/REEF-1740) Pull Request: This closes #1255 Project: http://git-wip-us.apache.org/repos/asf/reef/repo Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/2332f40b Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/2332f40b Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/2332f40b Branch: refs/heads/master Commit: 2332f40be9f3a848eeef169f8d94ee4323f960bd Parents: 076b98c Author: Sergiy Matusevych <[email protected]> Authored: Wed Feb 15 18:19:17 2017 -0800 Committer: Markus Weimer <[email protected]> Committed: Thu Feb 16 09:17:29 2017 -0800 ---------------------------------------------------------------------- .../yarn/driver/YarnContainerManager.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/reef/blob/2332f40b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java index e9e189b..f323018 100644 --- a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java +++ b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java @@ -80,7 +80,8 @@ final class YarnContainerManager private final ApplicationMasterRegistration registration; private final ContainerRequestCounter containerRequestCounter; private final DriverStatusManager driverStatusManager; - private final TrackingURLProvider trackingURLProvider; + private final String trackingUrl; + private final String jobSubmissionDirectory; private final REEFFileNames reefFileNames; private final RackNameFormatter rackNameFormatter; @@ -108,8 +109,8 @@ final class YarnContainerManager this.registration = registration; this.containerRequestCounter = containerRequestCounter; this.yarnConf = yarnConf; - this.trackingURLProvider = trackingURLProvider; this.rackNameFormatter = rackNameFormatter; + this.trackingUrl = trackingURLProvider.getTrackingUrl(); this.resourceManager = AMRMClientAsync.createAMRMClientAsync(yarnRMHeartbeatPeriod, this); this.nodeManager = new NMClientAsyncImpl(this); @@ -317,8 +318,11 @@ final class YarnContainerManager try { + LOG.log(Level.FINE, "YARN registration: register AM at \"{0}:{1}\" tracking URL \"{2}\"", + new Object[] {AM_REGISTRATION_HOST, AM_REGISTRATION_PORT, this.trackingUrl}); + this.registration.setRegistration(this.resourceManager.registerApplicationMaster( - AM_REGISTRATION_HOST, AM_REGISTRATION_PORT, this.trackingURLProvider.getTrackingUrl())); + AM_REGISTRATION_HOST, AM_REGISTRATION_PORT, this.trackingUrl)); LOG.log(Level.FINE, "YARN registration: AM registered: {0}", this.registration); @@ -326,8 +330,9 @@ final class YarnContainerManager final Path outputFileName = new Path(this.jobSubmissionDirectory, this.reefFileNames.getDriverHttpEndpoint()); try (final FSDataOutputStream out = fs.create(outputFileName)) { - out.writeBytes(this.trackingURLProvider.getTrackingUrl() + '\n'); + out.writeBytes(this.trackingUrl + '\n'); } + } catch (final YarnException | IOException e) { LOG.log(Level.WARNING, "Unable to register application master.", e); onRuntimeError(e); @@ -354,7 +359,7 @@ final class YarnContainerManager if (exception == null) { this.resourceManager.unregisterApplicationMaster( - FinalApplicationStatus.SUCCEEDED, "Success!", this.trackingURLProvider.getTrackingUrl()); + FinalApplicationStatus.SUCCEEDED, "Success!", this.trackingUrl); } else { // Note: We don't allow RM to restart our applications if it's an application level failure. @@ -366,7 +371,7 @@ final class YarnContainerManager "With stack trace:%n%s", exception.getMessage(), ExceptionUtils.getStackTrace(exception)); this.resourceManager.unregisterApplicationMaster( - FinalApplicationStatus.FAILED, failureMsg, this.trackingURLProvider.getTrackingUrl()); + FinalApplicationStatus.FAILED, failureMsg, this.trackingUrl); } this.resourceManager.close(); @@ -595,7 +600,8 @@ final class YarnContainerManager // SHUTDOWN YARN try { this.reefEventHandlers.close(); - this.resourceManager.unregisterApplicationMaster(FinalApplicationStatus.FAILED, throwable.getMessage(), null); + this.resourceManager.unregisterApplicationMaster( + FinalApplicationStatus.FAILED, throwable.getMessage(), this.trackingUrl); } catch (final Exception e) { LOG.log(Level.WARNING, "Error shutting down YARN application", e); } finally {
