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 2015/07/21 00:45:06 UTC
incubator-reef git commit: [REEF-269] Refactor Launcher and
LaunchClass
Repository: incubator-reef
Updated Branches:
refs/heads/master 06898622f -> 84becf50c
[REEF-269] Refactor Launcher and LaunchClass
This addressed the issue by
* Creating a new Launcher (REEFLauncher) that runs parallel to the
old Launcher.
* Moving ErrorHandlerRID and LaunchID into configuration instead of
using the command line.
JIRA:
[REEF-269](https://issues.apache.org/jira/browse/REEF-269)
Pull Request:
This closes #291
Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/84becf50
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/84becf50
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/84becf50
Branch: refs/heads/master
Commit: 84becf50cf65a30849569111b11956dbf8bfb4fe
Parents: 0689862
Author: Andrew Chung <af...@gmail.com>
Authored: Tue Jul 7 17:24:49 2015 -0400
Committer: Markus Weimer <we...@apache.org>
Committed: Mon Jul 20 15:44:25 2015 -0700
----------------------------------------------------------------------
.../Runtime/Evaluator/Constants.cs | 2 +
.../Evaluator/Utils/EvaluatorConfigurations.cs | 11 +
lang/cs/Org.Apache.REEF.Evaluator/Evaluator.cs | 14 +-
.../ClrBridgeClient.cs | 1 -
.../reef/driver/evaluator/CLRProcess.java | 12 -
.../reef/driver/evaluator/EvaluatorProcess.java | 16 --
.../reef/driver/evaluator/JVMProcess.java | 12 -
.../apache/reef/runtime/common/Launcher.java | 7 +
.../reef/runtime/common/REEFLauncher.java | 249 +++++++++++++++++++
.../evaluator/EvaluatorConfiguration.java | 4 +
.../common/launch/CLRLaunchCommandBuilder.java | 15 --
.../common/launch/JavaLaunchCommandBuilder.java | 31 +--
.../reef/runtime/common/launch/LaunchClass.java | 2 +
.../common/launch/LaunchCommandBuilder.java | 4 -
.../common/launch/ProfilingStopHandler.java | 4 +-
.../runtime/common/launch/REEFErrorHandler.java | 2 +-
.../client/HDInsightDriverConfiguration.java | 11 +
.../client/HDInsightJobSubmissionHandler.java | 3 +-
.../client/PreparedDriverFolderLauncher.java | 2 -
.../local/driver/LocalDriverConfiguration.java | 4 +
.../runtime/local/driver/ResourceManager.java | 2 -
.../mesos/client/MesosJobSubmissionHandler.java | 2 -
.../mesos/driver/MesosDriverConfiguration.java | 4 +
.../driver/MesosResourceLaunchHandler.java | 2 -
.../yarn/client/YarnSubmissionHelper.java | 2 -
.../yarn/driver/YARNResourceLaunchHandler.java | 2 -
.../yarn/driver/YarnDriverConfiguration.java | 4 +
27 files changed, 312 insertions(+), 112 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Constants.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Constants.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Constants.cs
index 4683f7f..1583367 100644
--- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Constants.cs
+++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Constants.cs
@@ -33,6 +33,8 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator
public const string ApplicationIdentifier = "ApplicationIdentifier";
+ public const string ErrorHandlerRID = "ErrorHandlerRID";
+
public const int DefaultEvaluatorHeartbeatPeriodInMs = 4000;
public const int DefaultEvaluatorHeartbeatMaxRetry = 3;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/EvaluatorConfigurations.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/EvaluatorConfigurations.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/EvaluatorConfigurations.cs
index d75d681..a54a508 100644
--- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/EvaluatorConfigurations.cs
+++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/EvaluatorConfigurations.cs
@@ -48,6 +48,8 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Utils
private string _rootServiceConfiguration;
+ private string _errorHandlerRid;
+
public EvaluatorConfigurations(string configFile)
{
using (LOGGER.LogFunction("EvaluatorConfigurations::EvaluatorConfigurations"))
@@ -108,6 +110,15 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Utils
}
}
+ public string ErrorHandlerRID
+ {
+ get
+ {
+ _errorHandlerRid = _errorHandlerRid ?? GetSettingValue(Constants.ErrorHandlerRID);
+ return _errorHandlerRid;
+ }
+ }
+
public string RootContextConfigurationString
{
get
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/cs/Org.Apache.REEF.Evaluator/Evaluator.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Evaluator/Evaluator.cs b/lang/cs/Org.Apache.REEF.Evaluator/Evaluator.cs
index f97438d..c114e7e 100644
--- a/lang/cs/Org.Apache.REEF.Evaluator/Evaluator.cs
+++ b/lang/cs/Org.Apache.REEF.Evaluator/Evaluator.cs
@@ -87,24 +87,22 @@ namespace Org.Apache.REEF.Evaluator
// Fetch some settings from the ConfigurationManager
SetHeartbeatPeriod();
SetHeartbeatMaxRetry();
-
-
+
// Parse the command line
- if (args.Count() < 2)
+ // The error handler RID should now be written in the configuration file instead
+ if (args.Count() != 1)
{
- var e = new InvalidOperationException("must supply at least the rId and evaluator config file");
+ var e = new InvalidOperationException("must supply only the evaluator config file!");
Utilities.Diagnostics.Exceptions.Throw(e, _logger);
}
- // remote driver Id
- string rId = args[0];
-
// evaluator configuraiton file
- string evaluatorConfigurationPath = args[1];
+ string evaluatorConfigurationPath = args[0];
// Parse the evaluator configuration.
_evaluatorConfig = new EvaluatorConfigurations(evaluatorConfigurationPath);
+ string rId = _evaluatorConfig.ErrorHandlerRID;
ContextConfiguration rootContextConfiguration = _evaluatorConfig.RootContextConfiguration;
Optional<TaskConfiguration> rootTaskConfig = _evaluatorConfig.TaskConfiguration;
Optional<ServiceConfiguration> rootServiceConfig = _evaluatorConfig.RootServiceConfiguration;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/cs/Org.Apache.REEF.Examples.HelloCLRBridge/ClrBridgeClient.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Examples.HelloCLRBridge/ClrBridgeClient.cs b/lang/cs/Org.Apache.REEF.Examples.HelloCLRBridge/ClrBridgeClient.cs
index a3aa925..d05503d 100644
--- a/lang/cs/Org.Apache.REEF.Examples.HelloCLRBridge/ClrBridgeClient.cs
+++ b/lang/cs/Org.Apache.REEF.Examples.HelloCLRBridge/ClrBridgeClient.cs
@@ -87,7 +87,6 @@ namespace Org.Apache.REEF.Examples.HelloCLRBridge
}
/// <summary>
- /// </summary>
/// <param name="runOnYarn"></param>
/// <param name="runtimeFolder"></param>
/// <returns></returns>
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/CLRProcess.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/CLRProcess.java b/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/CLRProcess.java
index a9d818c..92704fa 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/CLRProcess.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/CLRProcess.java
@@ -46,18 +46,6 @@ public final class CLRProcess implements EvaluatorProcess {
}
@Override
- public EvaluatorProcess setErrorHandlerRID(final String errorHandlerRID) {
- commandBuilder.setErrorHandlerRID(errorHandlerRID);
- return this;
- }
-
- @Override
- public EvaluatorProcess setLaunchID(final String launchID) {
- commandBuilder.setLaunchID(launchID);
- return this;
- }
-
- @Override
public EvaluatorProcess setMemory(final int megaBytes) {
commandBuilder.setMemory(megaBytes);
return this;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorProcess.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorProcess.java b/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorProcess.java
index 2caeb2e..ff4b5b1 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorProcess.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorProcess.java
@@ -35,22 +35,6 @@ public interface EvaluatorProcess {
EvaluatorType getType();
/**
- * Set the error handler remote identifier.
- *
- * @param errorHandlerRID
- * @return this
- */
- EvaluatorProcess setErrorHandlerRID(final String errorHandlerRID);
-
- /**
- * Set the launch identifier.
- *
- * @param launchID
- * @return this
- */
- EvaluatorProcess setLaunchID(final String launchID);
-
- /**
* Set memory size of process in megabytes.
*
* @param megaBytes
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/JVMProcess.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/JVMProcess.java b/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/JVMProcess.java
index c50e777..8ed2a14 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/JVMProcess.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/JVMProcess.java
@@ -55,18 +55,6 @@ public final class JVMProcess implements EvaluatorProcess {
}
@Override
- public EvaluatorProcess setErrorHandlerRID(final String errorHandlerRID) {
- commandBuilder.setErrorHandlerRID(errorHandlerRID);
- return this;
- }
-
- @Override
- public EvaluatorProcess setLaunchID(final String launchID) {
- commandBuilder.setLaunchID(launchID);
- return this;
- }
-
- @Override
public EvaluatorProcess setMemory(final int megaBytes) {
commandBuilder.setMemory(megaBytes);
return this;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/Launcher.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/Launcher.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/Launcher.java
index ba1c29e..16477fb 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/Launcher.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/Launcher.java
@@ -43,7 +43,10 @@ import java.util.logging.Logger;
/**
* The main entrance point into any REEF process. It is mostly instantiating LaunchClass and calling .run() on it.
+ * @deprecated in 0.12.0. Please use REEFLauncher, which reads ErrorHandlerRID and LaunchID from the \
+ * configuration file rather than from the command line arguments.
*/
+@Deprecated
public final class Launcher {
private static final Logger LOG = Logger.getLogger(Launcher.class.getName());
@@ -95,6 +98,10 @@ public final class Launcher {
* @throws Exception
*/
public static void main(final String[] args) {
+ LOG.log(Level.WARNING, "Launcher is deprecated in REEF 0.12.0. Please use REEFLauncher, " +
+ "which reads ErrorHandlerRID and LaunchID from the " +
+ "configuration file rather than from the command line arguments");
+
LOG.log(Level.FINE, "Launcher started with user name [{0}]", System.getProperty("user.name"));
LOG.log(Level.FINE, "Launcher started. Assertions are {0} in this process.",
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/REEFLauncher.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/REEFLauncher.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/REEFLauncher.java
new file mode 100644
index 0000000..d818513
--- /dev/null
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/REEFLauncher.java
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.reef.runtime.common;
+
+import org.apache.reef.runtime.common.evaluator.PIDStoreStartHandler;
+import org.apache.reef.runtime.common.launch.ProfilingStopHandler;
+import org.apache.reef.runtime.common.launch.REEFErrorHandler;
+import org.apache.reef.runtime.common.launch.REEFMessageCodec;
+import org.apache.reef.runtime.common.launch.parameters.ClockConfigurationPath;
+import org.apache.reef.tang.*;
+import org.apache.reef.tang.annotations.Name;
+import org.apache.reef.tang.annotations.NamedParameter;
+import org.apache.reef.tang.annotations.Parameter;
+import org.apache.reef.tang.exceptions.BindException;
+import org.apache.reef.tang.exceptions.InjectionException;
+import org.apache.reef.tang.formats.ConfigurationSerializer;
+import org.apache.reef.util.EnvironmentUtils;
+import org.apache.reef.util.REEFVersion;
+import org.apache.reef.util.ThreadLogger;
+import org.apache.reef.util.logging.LoggingSetup;
+import org.apache.reef.wake.profiler.WakeProfiler;
+import org.apache.reef.wake.remote.RemoteConfiguration;
+import org.apache.reef.wake.time.Clock;
+
+import javax.inject.Inject;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * The main entrance point into any REEF process. It is mostly reading from the command line to instantiate
+ * the runtime clock and calling .run() on it.
+ */
+public final class REEFLauncher {
+
+ @NamedParameter(doc = "If true, profiling will be enabled", short_name = "profiling", default_value = "false")
+ public static final class ProfilingEnabled implements Name<Boolean> {
+ }
+
+ private static final Logger LOG = Logger.getLogger(REEFLauncher.class.getName());
+
+ private static final Configuration LAUNCHER_STATIC_CONFIG = Tang.Factory.getTang().newConfigurationBuilder()
+ .bindSetEntry(Clock.StartHandler.class, PIDStoreStartHandler.class)
+ .bindNamedParameter(RemoteConfiguration.ErrorHandler.class, REEFErrorHandler.class)
+ .bindNamedParameter(RemoteConfiguration.ManagerName.class, "REEF_LAUNCHER")
+ .bindNamedParameter(RemoteConfiguration.MessageCodec.class, REEFMessageCodec.class)
+ .build();
+
+ static {
+ LoggingSetup.setupCommonsLogging();
+ }
+
+ private final String configurationPath;
+ private final boolean isProfilingEnabled;
+ private final ConfigurationSerializer configurationSerializer;
+ private final REEFVersion reefVersion;
+ private final Configuration clockConfig;
+
+ @Inject
+ private REEFLauncher(@Parameter(ClockConfigurationPath.class) final String configurationPath,
+ @Parameter(ProfilingEnabled.class) final boolean enableProfiling,
+ final ConfigurationSerializer configurationSerializer,
+ final REEFVersion reefVersion) {
+ this.configurationPath = configurationPath;
+ this.configurationSerializer = configurationSerializer;
+ this.isProfilingEnabled = enableProfiling;
+ this.reefVersion = reefVersion;
+ this.clockConfig = Configurations.merge(
+ readConfigurationFromDisk(this.configurationPath, this.configurationSerializer),
+ LAUNCHER_STATIC_CONFIG);
+ }
+
+ private static REEFLauncher getREEFLauncher(final String clockConfigPath) {
+ final Injector injector;
+ try {
+ Configuration clockArgConfig = Tang.Factory.getTang().newConfigurationBuilder()
+ .bindNamedParameter(ClockConfigurationPath.class, clockConfigPath).build();
+ injector = Tang.Factory.getTang().newInjector(clockArgConfig);
+ } catch (final BindException e) {
+ throw fatal("Error in parsing the command line", e);
+ }
+
+ try {
+ return injector.getInstance(REEFLauncher.class);
+ } catch (InjectionException e) {
+ throw fatal("Unable to run REEFLauncher.", e);
+ }
+ }
+
+ private static RuntimeException fatal(final String msg, final Throwable t) {
+ LOG.log(Level.SEVERE, msg, t);
+ return new RuntimeException(msg, t);
+ }
+
+ private static RuntimeException fatal(final REEFErrorHandler errorHandler, final String msg, final Throwable t) {
+ errorHandler.onNext(t);
+ LOG.log(Level.SEVERE, msg, t);
+ return new RuntimeException(msg, t);
+ }
+
+ private static Configuration readConfigurationFromDisk(
+ final String configPath, final ConfigurationSerializer serializer) {
+ LOG.log(Level.FINEST, "Loading configuration file: {0}", configPath);
+
+ final File evaluatorConfigFile = new File(configPath);
+
+ if (!evaluatorConfigFile.exists()) {
+ final String message = "The configuration file " + configPath +
+ "doesn't exist. This points to an issue in the job submission.";
+ throw fatal(message, new FileNotFoundException());
+ } else if (!evaluatorConfigFile.canRead()) {
+ final String message = "The configuration file " + configPath +
+ " exists, but can't be read";
+ throw fatal(message, new IOException());
+ } else {
+ try {
+ return serializer.fromFile(evaluatorConfigFile);
+ } catch (final IOException e) {
+ final String message = "Unable to parse the configuration file " + configPath;
+ throw fatal(message, e);
+ }
+ }
+ }
+
+ /**
+ * Launches a REEF client process (Driver or Evaluator).
+ *
+ * @param args
+ * @throws Exception
+ */
+ public static void main(final String[] args) {
+ LOG.log(Level.INFO, "Entering REEFLauncher.main().");
+ LOG.log(Level.FINE, "REEFLauncher started with user name [{0}]", System.getProperty("user.name"));
+
+ LOG.log(Level.FINE, "REEFLauncher started. Assertions are {0} in this process.",
+ EnvironmentUtils.areAssertionsEnabled() ? "ENABLED" : "DISABLED");
+
+ if (args.length != 1) {
+ final String message = "REEFLauncher have one and only one argument to specify the runtime clock " +
+ "configuration path";
+
+ throw fatal(message, new IllegalArgumentException(message));
+ }
+
+ final REEFLauncher launcher = getREEFLauncher(args[0]);
+ launcher.logVersion();
+
+ try (final Clock clock = launcher.getClockFromConfig()) {
+ LOG.log(Level.FINE, "Clock starting");
+ clock.run();
+ LOG.log(Level.FINE, "Clock exiting");
+ } catch (final Throwable ex) {
+ try (final REEFErrorHandler errorHandler = launcher.getErrorHandlerFromConfig()) {
+ throw fatal(errorHandler, "Unable to instantiate the clock", ex);
+ } catch (InjectionException e) {
+ throw fatal("Unable to instantiate the clock and the ErrorHandler", e);
+ }
+ }
+
+ LOG.log(Level.INFO, "Exiting REEFLauncher.main()");
+ if (LOG.isLoggable(Level.FINEST)) {
+ LOG.log(Level.FINEST, ThreadLogger.getFormattedThreadList("Threads running after REEFLauncher.close():"));
+ }
+ System.exit(0);
+ if (LOG.isLoggable(Level.FINEST)) {
+ LOG.log(Level.FINEST, ThreadLogger.getFormattedThreadList("Threads running after System.exit():"));
+ }
+ }
+
+ /**
+ * Pass values of the properties specified in the propNames array as <code>-D...</code>
+ * command line parameters. Currently used only to pass logging configuration to child JVMs processes.
+ *
+ * @param vargs List of command line parameters to append to.
+ * @param copyNull create an empty parameter if the property is missing in current process.
+ * @param propNames property names.
+ */
+ public static void propagateProperties(
+ final Collection<String> vargs, final boolean copyNull, final String... propNames) {
+ for (final String propName : propNames) {
+ final String propValue = System.getProperty(propName);
+ if (propValue == null || propValue.isEmpty()) {
+ if (copyNull) {
+ vargs.add("-D" + propName);
+ }
+ } else {
+ vargs.add(String.format("-D%s=%s", propName, propValue));
+ }
+ }
+ }
+
+ /**
+ * Same as above, but with copyNull == false by default.
+ */
+ public static void propagateProperties(
+ final Collection<String> vargs, final String... propNames) {
+ propagateProperties(vargs, false, propNames);
+ }
+
+ private void logVersion() {
+ this.reefVersion.logVersion();
+ }
+
+ /**
+ * A new REEFErrorHandler is instantiated instead of lazy instantiation and saving the instantiated
+ * handler as a field since the ErrorHandler is closeable.
+ * @return A new REEFErrorHandler from clock config
+ * @throws InjectionException
+ */
+ private REEFErrorHandler getErrorHandlerFromConfig() throws InjectionException {
+ return Tang.Factory.getTang().newInjector(this.clockConfig).getInstance(REEFErrorHandler.class);
+ }
+
+ /**
+ * A new Clock is instantiated instead of lazy instantiation and saving the instantiated
+ * handler as a field since the Clock is closeable.
+ * @return A new Clock from clock config
+ * @throws InjectionException
+ */
+ private Clock getClockFromConfig() throws InjectionException {
+ final Injector clockInjector = Tang.Factory.getTang().newInjector(this.clockConfig);
+ if (this.isProfilingEnabled) {
+ WakeProfiler profiler = new WakeProfiler();
+ ProfilingStopHandler.setProfiler(profiler);
+ clockInjector.bindAspect(profiler);
+ }
+
+ return clockInjector.getInstance(Clock.class);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java
index 48e1f25..6e48a6a 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java
@@ -19,6 +19,8 @@
package org.apache.reef.runtime.common.evaluator;
import org.apache.reef.runtime.common.evaluator.parameters.*;
+import org.apache.reef.runtime.common.launch.parameters.ErrorHandlerRID;
+import org.apache.reef.runtime.common.launch.parameters.LaunchID;
import org.apache.reef.tang.ExternalConstructor;
import org.apache.reef.tang.formats.ConfigurationModule;
import org.apache.reef.tang.formats.ConfigurationModuleBuilder;
@@ -46,12 +48,14 @@ public final class EvaluatorConfiguration extends ConfigurationModuleBuilder {
.bindSetEntry(Clock.RuntimeStopHandler.class, EvaluatorRuntime.RuntimeStopHandler.class)
.bindConstructor(ExecutorService.class, ExecutorServiceConstructor.class)
.bindNamedParameter(DriverRemoteIdentifier.class, DRIVER_REMOTE_IDENTIFIER)
+ .bindNamedParameter(ErrorHandlerRID.class, DRIVER_REMOTE_IDENTIFIER)
.bindNamedParameter(EvaluatorIdentifier.class, EVALUATOR_IDENTIFIER)
.bindNamedParameter(HeartbeatPeriod.class, HEARTBEAT_PERIOD)
.bindNamedParameter(RootContextConfiguration.class, ROOT_CONTEXT_CONFIGURATION)
.bindNamedParameter(InitialTaskConfiguration.class, TASK_CONFIGURATION)
.bindNamedParameter(RootServiceConfiguration.class, ROOT_SERVICE_CONFIGURATION)
.bindNamedParameter(ApplicationIdentifier.class, APPLICATION_IDENTIFIER)
+ .bindNamedParameter(LaunchID.class, APPLICATION_IDENTIFIER)
.build();
private static final class ExecutorServiceConstructor implements ExternalConstructor<ExecutorService> {
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/CLRLaunchCommandBuilder.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/CLRLaunchCommandBuilder.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/CLRLaunchCommandBuilder.java
index 617a43b..0b7899d 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/CLRLaunchCommandBuilder.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/CLRLaunchCommandBuilder.java
@@ -36,8 +36,6 @@ public class CLRLaunchCommandBuilder implements LaunchCommandBuilder {
private String standardErrPath = null;
private String standardOutPath = null;
- private String errorHandlerRID = null;
- private String launchID = null;
private int megaBytes = 0;
private String evaluatorConfigurationPath = null;
@@ -49,7 +47,6 @@ public class CLRLaunchCommandBuilder implements LaunchCommandBuilder {
LOG.log(Level.WARNING, "file can NOT be found: {0}", f.getAbsolutePath());
}
result.add(f.getPath());
- result.add(errorHandlerRID);
result.add(evaluatorConfigurationPath);
if ((null != this.standardOutPath) && (!standardOutPath.isEmpty())) {
result.add(">" + this.standardOutPath);
@@ -62,18 +59,6 @@ public class CLRLaunchCommandBuilder implements LaunchCommandBuilder {
}
@Override
- public CLRLaunchCommandBuilder setErrorHandlerRID(final String errorHandlerRID) {
- this.errorHandlerRID = errorHandlerRID;
- return this;
- }
-
- @Override
- public CLRLaunchCommandBuilder setLaunchID(final String launchID) {
- this.launchID = launchID;
- return this;
- }
-
- @Override
@SuppressWarnings("checkstyle:hiddenfield")
public CLRLaunchCommandBuilder setMemory(final int megaBytes) {
this.megaBytes = megaBytes;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/JavaLaunchCommandBuilder.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/JavaLaunchCommandBuilder.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/JavaLaunchCommandBuilder.java
index fca071c..24e36a6 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/JavaLaunchCommandBuilder.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/JavaLaunchCommandBuilder.java
@@ -19,10 +19,7 @@
package org.apache.reef.runtime.common.launch;
import org.apache.commons.lang.StringUtils;
-import org.apache.reef.runtime.common.Launcher;
-import org.apache.reef.runtime.common.launch.parameters.ClockConfigurationPath;
-import org.apache.reef.runtime.common.launch.parameters.ErrorHandlerRID;
-import org.apache.reef.runtime.common.launch.parameters.LaunchID;
+import org.apache.reef.runtime.common.REEFLauncher;
import org.apache.reef.util.EnvironmentUtils;
import java.io.File;
@@ -34,8 +31,6 @@ public final class JavaLaunchCommandBuilder implements LaunchCommandBuilder {
private static final String DEFAULT_JAVA_PATH = System.getenv("JAVA_HOME") + "/bin/" + "java";
private String stderrPath = null;
private String stdoutPath = null;
- private String errorHandlerRID = null;
- private String launchID = null;
private int megaBytes = 0;
private String evaluatorConfigurationPath = null;
private String javaPath = null;
@@ -67,17 +62,11 @@ public final class JavaLaunchCommandBuilder implements LaunchCommandBuilder {
add(classPath);
}
- Launcher.propagateProperties(this, true, "proc_reef");
- Launcher.propagateProperties(this, false,
+ REEFLauncher.propagateProperties(this, true, "proc_reef");
+ REEFLauncher.propagateProperties(this, false,
"java.util.logging.config.file", "java.util.logging.config.class");
- add(Launcher.class.getName());
-
- add("-" + ErrorHandlerRID.SHORT_NAME);
- add(errorHandlerRID);
- add("-" + LaunchID.SHORT_NAME);
- add(launchID);
- add("-" + ClockConfigurationPath.SHORT_NAME);
+ add(REEFLauncher.class.getName());
add(evaluatorConfigurationPath);
if (stdoutPath != null && !stdoutPath.isEmpty()) {
@@ -93,18 +82,6 @@ public final class JavaLaunchCommandBuilder implements LaunchCommandBuilder {
}
@Override
- public JavaLaunchCommandBuilder setErrorHandlerRID(final String errorHandlerRID) {
- this.errorHandlerRID = errorHandlerRID;
- return this;
- }
-
- @Override
- public JavaLaunchCommandBuilder setLaunchID(final String launchID) {
- this.launchID = launchID;
- return this;
- }
-
- @Override
@SuppressWarnings("checkstyle:hiddenfield")
public JavaLaunchCommandBuilder setMemory(final int megaBytes) {
this.megaBytes = megaBytes;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchClass.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchClass.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchClass.java
index 421b528..240a531 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchClass.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchClass.java
@@ -41,7 +41,9 @@ import java.util.logging.Logger;
/**
* This encapsulates processes started by REEF.
+ * @deprecated in 0.12.0. This class is exclusively used by the deprecated Launcher.
*/
+@Deprecated
public final class LaunchClass implements AutoCloseable, Runnable {
private static final Logger LOG = Logger.getLogger(LaunchClass.class.getName());
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchCommandBuilder.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchCommandBuilder.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchCommandBuilder.java
index 2cfbfe6..5726980 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchCommandBuilder.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/LaunchCommandBuilder.java
@@ -31,10 +31,6 @@ public interface LaunchCommandBuilder {
*/
List<String> build();
- LaunchCommandBuilder setErrorHandlerRID(final String errorHandlerRID);
-
- LaunchCommandBuilder setLaunchID(final String launchID);
-
LaunchCommandBuilder setMemory(final int megaBytes);
/**
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/ProfilingStopHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/ProfilingStopHandler.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/ProfilingStopHandler.java
index 575b0a4..025224a 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/ProfilingStopHandler.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/ProfilingStopHandler.java
@@ -33,7 +33,7 @@ import java.util.logging.Logger;
/**
* An EventHandler that writes out the profiler results.
*/
-final class ProfilingStopHandler implements EventHandler<StopTime> {
+public final class ProfilingStopHandler implements EventHandler<StopTime> {
private static final Logger LOG = Logger.getLogger(ProfilingStopHandler.class.getName());
private static WakeProfiler profiler;
private final String launchID;
@@ -43,7 +43,7 @@ final class ProfilingStopHandler implements EventHandler<StopTime> {
this.launchID = launchID;
}
- static void setProfiler(final WakeProfiler profiler) {
+ public static void setProfiler(final WakeProfiler profiler) {
ProfilingStopHandler.profiler = profiler;
}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/REEFErrorHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/REEFErrorHandler.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/REEFErrorHandler.java
index 6124d85..21dfff4 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/REEFErrorHandler.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/launch/REEFErrorHandler.java
@@ -36,7 +36,7 @@ import java.util.logging.Logger;
/**
* The error handler REEF registers with Wake.
*/
-public final class REEFErrorHandler implements EventHandler<Throwable> {
+public final class REEFErrorHandler implements EventHandler<Throwable>, AutoCloseable {
private static final Logger LOG = Logger.getLogger(REEFErrorHandler.class.getName());
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightDriverConfiguration.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightDriverConfiguration.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightDriverConfiguration.java
index 61ad4fc..d991dce 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightDriverConfiguration.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightDriverConfiguration.java
@@ -26,10 +26,13 @@ import org.apache.reef.io.WorkingDirectoryTempFileCreator;
import org.apache.reef.runtime.common.driver.api.ResourceLaunchHandler;
import org.apache.reef.runtime.common.driver.api.ResourceReleaseHandler;
import org.apache.reef.runtime.common.driver.api.ResourceRequestHandler;
+import org.apache.reef.runtime.common.driver.parameters.ClientRemoteIdentifier;
import org.apache.reef.runtime.common.driver.parameters.EvaluatorTimeout;
import org.apache.reef.runtime.common.driver.parameters.JobIdentifier;
import org.apache.reef.runtime.common.files.RuntimePathProvider;
import org.apache.reef.runtime.common.files.RuntimeClasspathProvider;
+import org.apache.reef.runtime.common.launch.parameters.ErrorHandlerRID;
+import org.apache.reef.runtime.common.launch.parameters.LaunchID;
import org.apache.reef.runtime.common.parameters.JVMHeapSlack;
import org.apache.reef.runtime.hdinsight.HDInsightClasspathProvider;
import org.apache.reef.runtime.hdinsight.HDInsightJVMPathProvider;
@@ -65,6 +68,11 @@ public final class HDInsightDriverConfiguration extends ConfigurationModuleBuild
public static final RequiredParameter<String> JOB_IDENTIFIER = new RequiredParameter<>();
/**
+ * The client remote identifier.
+ */
+ public static final OptionalParameter<String> CLIENT_REMOTE_IDENTIFIER = new OptionalParameter<>();
+
+ /**
* @see EvaluatorTimeout
*/
public static final OptionalParameter<Long> EVALUATOR_TIMEOUT = new OptionalParameter<>();
@@ -91,6 +99,9 @@ public final class HDInsightDriverConfiguration extends ConfigurationModuleBuild
// Bind the fields bound in AbstractDriverRuntimeConfiguration
.bindNamedParameter(JobIdentifier.class, JOB_IDENTIFIER)
+ .bindNamedParameter(LaunchID.class, JOB_IDENTIFIER)
+ .bindNamedParameter(ClientRemoteIdentifier.class, CLIENT_REMOTE_IDENTIFIER)
+ .bindNamedParameter(ErrorHandlerRID.class, CLIENT_REMOTE_IDENTIFIER)
.bindNamedParameter(EvaluatorTimeout.class, EVALUATOR_TIMEOUT)
.bindNamedParameter(JVMHeapSlack.class, JVM_HEAP_SLACK)
.bindImplementation(RuntimeClasspathProvider.class, HDInsightClasspathProvider.class)
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightJobSubmissionHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightJobSubmissionHandler.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightJobSubmissionHandler.java
index 155a6cf..dfab9c2 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightJobSubmissionHandler.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/HDInsightJobSubmissionHandler.java
@@ -149,8 +149,6 @@ public final class HDInsightJobSubmissionHandler implements JobSubmissionHandler
return new JavaLaunchCommandBuilder()
.setJavaPath("%JAVA_HOME%/bin/java")
- .setErrorHandlerRID(jobSubmissionEvent.getRemoteId())
- .setLaunchID(jobSubmissionEvent.getIdentifier())
.setConfigurationFileName(this.filenames.getDriverConfigurationPath())
.setClassPath(this.classpath.getDriverClasspath())
.setMemory(jobSubmissionEvent.getDriverMemory().get())
@@ -166,6 +164,7 @@ public final class HDInsightJobSubmissionHandler implements JobSubmissionHandler
final Configuration hdinsightDriverConfiguration = HDInsightDriverConfiguration.CONF
.set(HDInsightDriverConfiguration.JOB_IDENTIFIER, applicationId)
+ .set(HDInsightDriverConfiguration.CLIENT_REMOTE_IDENTIFIER, jobSubmissionEvent.getRemoteId())
.set(HDInsightDriverConfiguration.JOB_SUBMISSION_DIRECTORY, jobFolderURL)
.set(HDInsightDriverConfiguration.JVM_HEAP_SLACK, this.jvmHeapSlack)
.build();
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/client/PreparedDriverFolderLauncher.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/client/PreparedDriverFolderLauncher.java b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/client/PreparedDriverFolderLauncher.java
index b208064..9cc6523 100644
--- a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/client/PreparedDriverFolderLauncher.java
+++ b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/client/PreparedDriverFolderLauncher.java
@@ -84,8 +84,6 @@ public class PreparedDriverFolderLauncher {
private List<String> makeLaunchCommand(final String jobId, final String clientRemoteId) {
final List<String> command = new JavaLaunchCommandBuilder()
- .setErrorHandlerRID(clientRemoteId)
- .setLaunchID(jobId)
.setConfigurationFileName(this.fileNames.getDriverConfigurationPath())
.setClassPath(this.classpath.getDriverClasspath())
.setMemory(DRIVER_MEMORY)
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalDriverConfiguration.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalDriverConfiguration.java b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalDriverConfiguration.java
index 6aac8a5..308e316 100644
--- a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalDriverConfiguration.java
+++ b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalDriverConfiguration.java
@@ -24,6 +24,8 @@ import org.apache.reef.runtime.common.driver.api.ResourceRequestHandler;
import org.apache.reef.runtime.common.driver.parameters.ClientRemoteIdentifier;
import org.apache.reef.runtime.common.driver.parameters.JobIdentifier;
import org.apache.reef.runtime.common.files.RuntimeClasspathProvider;
+import org.apache.reef.runtime.common.launch.parameters.ErrorHandlerRID;
+import org.apache.reef.runtime.common.launch.parameters.LaunchID;
import org.apache.reef.runtime.common.parameters.JVMHeapSlack;
import org.apache.reef.runtime.local.LocalClasspathProvider;
import org.apache.reef.runtime.local.client.parameters.MaxNumberOfEvaluators;
@@ -72,7 +74,9 @@ public class LocalDriverConfiguration extends ConfigurationModuleBuilder {
.bindImplementation(ResourceRequestHandler.class, LocalResourceRequestHandler.class)
.bindImplementation(ResourceReleaseHandler.class, LocalResourceReleaseHandler.class)
.bindNamedParameter(ClientRemoteIdentifier.class, CLIENT_REMOTE_IDENTIFIER)
+ .bindNamedParameter(ErrorHandlerRID.class, CLIENT_REMOTE_IDENTIFIER)
.bindNamedParameter(JobIdentifier.class, JOB_IDENTIFIER)
+ .bindNamedParameter(LaunchID.class, JOB_IDENTIFIER)
.bindNamedParameter(MaxNumberOfEvaluators.class, MAX_NUMBER_OF_EVALUATORS)
.bindNamedParameter(RootFolder.class, ROOT_FOLDER)
.bindNamedParameter(JVMHeapSlack.class, JVM_HEAP_SLACK)
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java
index 3ef7808..5c26cb9 100644
--- a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java
+++ b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java
@@ -180,8 +180,6 @@ public final class ResourceManager {
.getNewLoggingScope("ResourceManager.onResourceLaunchRequest:runCommand")) {
final List<String> command = launchRequest.getProcess()
- .setErrorHandlerRID(this.remoteManager.getMyIdentifier())
- .setLaunchID(c.getNodeID())
.setConfigurationFileName(this.fileNames.getEvaluatorConfigurationPath())
.setMemory((int) (this.jvmHeapFactor * c.getMemory()))
.getCommandLine();
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/client/MesosJobSubmissionHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/client/MesosJobSubmissionHandler.java b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/client/MesosJobSubmissionHandler.java
index 23cf746..15fbc06 100644
--- a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/client/MesosJobSubmissionHandler.java
+++ b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/client/MesosJobSubmissionHandler.java
@@ -119,8 +119,6 @@ final class MesosJobSubmissionHandler implements JobSubmissionHandler {
this.configurationSerializer.toFile(driverConfiguration, runtimeConfigurationFile);
final List<String> launchCommand = new JavaLaunchCommandBuilder()
- .setErrorHandlerRID(jobSubmissionEvent.getRemoteId())
- .setLaunchID(jobSubmissionEvent.getIdentifier())
.setConfigurationFileName(this.fileNames.getDriverConfigurationPath())
.setClassPath(this.classpath.getDriverClasspath())
.setMemory(jobSubmissionEvent.getDriverMemory().get())
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosDriverConfiguration.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosDriverConfiguration.java b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosDriverConfiguration.java
index 80236af..514fd2d 100644
--- a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosDriverConfiguration.java
+++ b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosDriverConfiguration.java
@@ -28,6 +28,8 @@ import org.apache.reef.runtime.common.driver.parameters.ClientRemoteIdentifier;
import org.apache.reef.runtime.common.driver.parameters.EvaluatorTimeout;
import org.apache.reef.runtime.common.driver.parameters.JobIdentifier;
import org.apache.reef.runtime.common.files.RuntimeClasspathProvider;
+import org.apache.reef.runtime.common.launch.parameters.ErrorHandlerRID;
+import org.apache.reef.runtime.common.launch.parameters.LaunchID;
import org.apache.reef.runtime.common.parameters.JVMHeapSlack;
import org.apache.reef.runtime.mesos.MesosClasspathProvider;
import org.apache.reef.runtime.mesos.driver.parameters.MesosMasterIp;
@@ -93,8 +95,10 @@ public final class MesosDriverConfiguration extends ConfigurationModuleBuilder {
// Bind the fields bound in AbstractDriverRuntimeConfiguration
.bindNamedParameter(JobIdentifier.class, JOB_IDENTIFIER)
+ .bindNamedParameter(LaunchID.class, JOB_IDENTIFIER)
.bindNamedParameter(EvaluatorTimeout.class, EVALUATOR_TIMEOUT)
.bindNamedParameter(ClientRemoteIdentifier.class, CLIENT_REMOTE_IDENTIFIER)
+ .bindNamedParameter(ErrorHandlerRID.class, CLIENT_REMOTE_IDENTIFIER)
.bindNamedParameter(JVMHeapSlack.class, JVM_HEAP_SLACK)
.build();
}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosResourceLaunchHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosResourceLaunchHandler.java b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosResourceLaunchHandler.java
index 9952ff2..3a13a65 100644
--- a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosResourceLaunchHandler.java
+++ b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosResourceLaunchHandler.java
@@ -99,8 +99,6 @@ final class MesosResourceLaunchHandler implements ResourceLaunchHandler {
// TODO: Replace REEFExecutor with a simple launch command (we only need to launch REEFExecutor)
final List<String> command = resourceLaunchEvent.getProcess()
- .setErrorHandlerRID(this.remoteManager.getMyIdentifier())
- .setLaunchID(resourceLaunchEvent.getIdentifier())
.setConfigurationFileName(this.fileNames.getEvaluatorConfigurationPath())
.setMemory((int) (this.jvmHeapFactor * this.executors.getMemory(resourceLaunchEvent.getIdentifier())))
.getCommandLine();
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/client/YarnSubmissionHelper.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/client/YarnSubmissionHelper.java b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/client/YarnSubmissionHelper.java
index 352cb4f..b5e932c 100644
--- a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/client/YarnSubmissionHelper.java
+++ b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/client/YarnSubmissionHelper.java
@@ -137,8 +137,6 @@ public final class YarnSubmissionHelper implements Closeable{
public void submit(final String clientRemoteIdentifier) throws IOException, YarnException {
// SET EXEC COMMAND
final List<String> launchCommand = new JavaLaunchCommandBuilder()
- .setErrorHandlerRID(clientRemoteIdentifier)
- .setLaunchID(this.applicationSubmissionContext.getApplicationName())
.setConfigurationFileName(this.fileNames.getDriverConfigurationPath())
.setClassPath(this.classpath.getDriverClasspath())
.setMemory(this.applicationSubmissionContext.getResource().getMemory())
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNResourceLaunchHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNResourceLaunchHandler.java b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNResourceLaunchHandler.java
index 48c0cec..5dd84c9 100644
--- a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNResourceLaunchHandler.java
+++ b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNResourceLaunchHandler.java
@@ -77,8 +77,6 @@ public final class YARNResourceLaunchHandler implements ResourceLaunchHandler {
this.evaluatorSetupHelper.getResources(resourceLaunchEvent);
final List<String> command = resourceLaunchEvent.getProcess()
- .setErrorHandlerRID(resourceLaunchEvent.getRemoteId())
- .setLaunchID(resourceLaunchEvent.getIdentifier())
.setConfigurationFileName(this.filenames.getEvaluatorConfigurationPath())
.setMemory((int) (this.jvmHeapFactor * container.getResource().getMemory()))
.setStandardErr(ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/" +
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/84becf50/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverConfiguration.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverConfiguration.java b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverConfiguration.java
index 3e501a8..8e95c38 100644
--- a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverConfiguration.java
+++ b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverConfiguration.java
@@ -28,6 +28,8 @@ import org.apache.reef.runtime.common.driver.parameters.ClientRemoteIdentifier;
import org.apache.reef.runtime.common.driver.parameters.EvaluatorTimeout;
import org.apache.reef.runtime.common.driver.parameters.JobIdentifier;
import org.apache.reef.runtime.common.files.RuntimeClasspathProvider;
+import org.apache.reef.runtime.common.launch.parameters.ErrorHandlerRID;
+import org.apache.reef.runtime.common.launch.parameters.LaunchID;
import org.apache.reef.runtime.common.parameters.JVMHeapSlack;
import org.apache.reef.runtime.yarn.YarnClasspathProvider;
import org.apache.reef.runtime.yarn.driver.parameters.JobSubmissionDirectory;
@@ -89,8 +91,10 @@ public class YarnDriverConfiguration extends ConfigurationModuleBuilder {
// Bind the fields bound in AbstractDriverRuntimeConfiguration
.bindNamedParameter(JobIdentifier.class, JOB_IDENTIFIER)
+ .bindNamedParameter(LaunchID.class, JOB_IDENTIFIER)
.bindNamedParameter(EvaluatorTimeout.class, EVALUATOR_TIMEOUT)
.bindNamedParameter(ClientRemoteIdentifier.class, CLIENT_REMOTE_IDENTIFIER)
+ .bindNamedParameter(ErrorHandlerRID.class, CLIENT_REMOTE_IDENTIFIER)
.bindNamedParameter(JVMHeapSlack.class, JVM_HEAP_SLACK)
.bindImplementation(RuntimeClasspathProvider.class, YarnClasspathProvider.class)
.build();