You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by we...@apache.org on 2017/02/16 17:18:55 UTC

reef git commit: [REEF-1740] Better logging when registering Driver with YARN

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 <mo...@apache.org>
Authored: Wed Feb 15 18:19:17 2017 -0800
Committer: Markus Weimer <we...@apache.org>
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 {