You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by ch...@apache.org on 2015/08/04 03:48:42 UTC
incubator-reef git commit: [REEF-312] Fail_Alarm fails with assumed
state RUNNING but reported state FAILED
Repository: incubator-reef
Updated Branches:
refs/heads/master 74282695a -> 9c820fd55
[REEF-312] Fail_Alarm fails with assumed state RUNNING but reported state FAILED
This addressed the issue by
* Created ResourceManagerStartHandler that the resource manager implements for initialization.
* Created ResourceManagerStopHandler that the resource manager implements for shutdown.
* Made all runtime packages implement the interfaces.
* Changed DriverRuntimeStartHandler and DriverRuntimeStopHandler to use ResourceManagerStartHandler
and ResourceManagerStopHandler.
JIRA:
[REEF-312] (https://issues.apache.org/jira/browse/REEF-312)
Pull Request:
This closes #326
Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/9c820fd5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/9c820fd5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/9c820fd5
Branch: refs/heads/master
Commit: 9c820fd55b6c6547dd787b165008d8b366bcf79a
Parents: 7428269
Author: Kim_Geon_Woo <gw...@gmail.com>
Authored: Fri Jul 31 14:49:48 2015 +0900
Committer: Brian Cho <ch...@apache.org>
Committed: Tue Aug 4 10:47:30 2015 +0900
----------------------------------------------------------------------
.../driver/DriverRuntimeStartHandler.java | 6 +++
.../common/driver/DriverRuntimeStopHandler.java | 5 +++
.../driver/api/ResourceManagerStartHandler.java | 30 +++++++++++++++
.../driver/api/ResourceManagerStopHandler.java | 30 +++++++++++++++
.../client/HDInsightDriverConfiguration.java | 9 ++---
.../runtime/local/driver/ContainerManager.java | 28 ++------------
.../local/driver/LocalDriverConfiguration.java | 6 +--
.../LocalResourceManagerStartHandler.java | 39 ++++++++++++++++++++
.../driver/LocalResourceManagerStopHandler.java | 39 ++++++++++++++++++++
.../mesos/driver/MesosDriverConfiguration.java | 9 ++---
.../mesos/driver/MesosRuntimeStartHandler.java | 4 +-
.../mesos/driver/MesosRuntimeStopHandler.java | 4 +-
.../yarn/driver/YARNRuntimeStartHandler.java | 4 +-
.../yarn/driver/YARNRuntimeStopHandler.java | 4 +-
.../yarn/driver/YarnDriverConfiguration.java | 9 ++---
15 files changed, 173 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStartHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStartHandler.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStartHandler.java
index a5e7232..3421a22 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStartHandler.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStartHandler.java
@@ -20,6 +20,7 @@ package org.apache.reef.runtime.common.driver;
import org.apache.reef.proto.EvaluatorRuntimeProtocol;
import org.apache.reef.proto.ReefServiceProtos;
+import org.apache.reef.runtime.common.driver.api.ResourceManagerStartHandler;
import org.apache.reef.runtime.common.driver.evaluator.EvaluatorHeartbeatHandler;
import org.apache.reef.runtime.common.driver.evaluator.EvaluatorResourceManagerErrorHandler;
import org.apache.reef.runtime.common.driver.resourcemanager.ResourceManagerStatus;
@@ -43,6 +44,7 @@ final class DriverRuntimeStartHandler implements EventHandler<RuntimeStart> {
private final EvaluatorResourceManagerErrorHandler evaluatorResourceManagerErrorHandler;
private final EvaluatorHeartbeatHandler evaluatorHeartbeatHandler;
private final ResourceManagerStatus resourceManagerStatus;
+ private final ResourceManagerStartHandler resourceManagerStartHandler;
private final DriverStatusManager driverStatusManager;
/**
@@ -50,6 +52,7 @@ final class DriverRuntimeStartHandler implements EventHandler<RuntimeStart> {
* @param remoteManager the remoteManager in the Driver.
* @param evaluatorResourceManagerErrorHandler This will be wired up to the remoteManager on onNext()
* @param evaluatorHeartbeatHandler This will be wired up to the remoteManager on onNext()
+ * @param resourceManagerStartHandler This will initialize the resource manager
* @param resourceManagerStatus will be set to RUNNING in onNext()
* @param driverStatusManager will be set to RUNNING in onNext()
*/
@@ -59,11 +62,13 @@ final class DriverRuntimeStartHandler implements EventHandler<RuntimeStart> {
final EvaluatorResourceManagerErrorHandler evaluatorResourceManagerErrorHandler,
final EvaluatorHeartbeatHandler evaluatorHeartbeatHandler,
final ResourceManagerStatus resourceManagerStatus,
+ final ResourceManagerStartHandler resourceManagerStartHandler,
final DriverStatusManager driverStatusManager) {
this.remoteManager = remoteManager;
this.evaluatorResourceManagerErrorHandler = evaluatorResourceManagerErrorHandler;
this.evaluatorHeartbeatHandler = evaluatorHeartbeatHandler;
this.resourceManagerStatus = resourceManagerStatus;
+ this.resourceManagerStartHandler = resourceManagerStartHandler;
this.driverStatusManager = driverStatusManager;
}
@@ -76,6 +81,7 @@ final class DriverRuntimeStartHandler implements EventHandler<RuntimeStart> {
this.remoteManager.registerHandler(ReefServiceProtos.RuntimeErrorProto.class, evaluatorResourceManagerErrorHandler);
this.resourceManagerStatus.setRunning();
this.driverStatusManager.onRunning();
+ this.resourceManagerStartHandler.onNext(runtimeStart);
LOG.log(Level.FINEST, "DriverRuntimeStartHandler complete.");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStopHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStopHandler.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStopHandler.java
index fc43d14..f580ed9 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStopHandler.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/DriverRuntimeStopHandler.java
@@ -20,6 +20,7 @@ package org.apache.reef.runtime.common.driver;
import org.apache.reef.annotations.audience.DriverSide;
import org.apache.reef.annotations.audience.Private;
+import org.apache.reef.runtime.common.driver.api.ResourceManagerStopHandler;
import org.apache.reef.runtime.common.driver.evaluator.Evaluators;
import org.apache.reef.runtime.common.utils.RemoteManager;
import org.apache.reef.util.Optional;
@@ -40,14 +41,17 @@ final class DriverRuntimeStopHandler implements EventHandler<RuntimeStop> {
private static final Logger LOG = Logger.getLogger(DriverRuntimeStopHandler.class.getName());
private final DriverStatusManager driverStatusManager;
+ private final ResourceManagerStopHandler resourceManagerStopHandler;
private final RemoteManager remoteManager;
private final Evaluators evaluators;
@Inject
DriverRuntimeStopHandler(final DriverStatusManager driverStatusManager,
+ final ResourceManagerStopHandler resourceManagerStopHandler,
final RemoteManager remoteManager,
final Evaluators evaluators) {
this.driverStatusManager = driverStatusManager;
+ this.resourceManagerStopHandler = resourceManagerStopHandler;
this.remoteManager = remoteManager;
this.evaluators = evaluators;
}
@@ -57,6 +61,7 @@ final class DriverRuntimeStopHandler implements EventHandler<RuntimeStop> {
LOG.log(Level.FINEST, "RuntimeStop: {0}", runtimeStop);
// Shutdown the Evaluators.
this.evaluators.close();
+ this.resourceManagerStopHandler.onNext(runtimeStop);
// Inform the client of the shutdown.
final Optional<Throwable> exception = Optional.<Throwable>ofNullable(runtimeStop.getException());
this.driverStatusManager.sendJobEndingMessageToClient(exception);
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/api/ResourceManagerStartHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/api/ResourceManagerStartHandler.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/api/ResourceManagerStartHandler.java
new file mode 100644
index 0000000..0744ded
--- /dev/null
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/api/ResourceManagerStartHandler.java
@@ -0,0 +1,30 @@
+/**
+ * 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.driver.api;
+
+import org.apache.reef.annotations.audience.RuntimeAuthor;
+import org.apache.reef.wake.EventHandler;
+import org.apache.reef.wake.time.runtime.event.RuntimeStart;
+
+/**
+ * Initialize the resource manager.
+ */
+@RuntimeAuthor
+public interface ResourceManagerStartHandler extends EventHandler<RuntimeStart> {
+}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/api/ResourceManagerStopHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/api/ResourceManagerStopHandler.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/api/ResourceManagerStopHandler.java
new file mode 100644
index 0000000..896e904
--- /dev/null
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/api/ResourceManagerStopHandler.java
@@ -0,0 +1,30 @@
+/**
+ * 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.driver.api;
+
+import org.apache.reef.annotations.audience.RuntimeAuthor;
+import org.apache.reef.wake.EventHandler;
+import org.apache.reef.wake.time.runtime.event.RuntimeStop;
+
+/**
+ * Shutdown the resource manager.
+ */
+@RuntimeAuthor
+public interface ResourceManagerStopHandler extends EventHandler<RuntimeStop> {
+}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/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 d991dce..1a79505 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
@@ -23,9 +23,7 @@ import org.apache.reef.annotations.audience.ClientSide;
import org.apache.reef.annotations.audience.Private;
import org.apache.reef.io.TempFileCreator;
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.api.*;
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;
@@ -44,7 +42,6 @@ import org.apache.reef.tang.formats.ConfigurationModule;
import org.apache.reef.tang.formats.ConfigurationModuleBuilder;
import org.apache.reef.tang.formats.OptionalParameter;
import org.apache.reef.tang.formats.RequiredParameter;
-import org.apache.reef.wake.time.Clock;
/**
* ConfigurationModule to create a Driver configuration.
@@ -88,9 +85,9 @@ public final class HDInsightDriverConfiguration extends ConfigurationModuleBuild
.bindImplementation(ResourceLaunchHandler.class, YARNResourceLaunchHandler.class)
.bindImplementation(ResourceReleaseHandler.class, YARNResourceReleaseHandler.class)
.bindImplementation(ResourceRequestHandler.class, YarnResourceRequestHandler.class)
+ .bindImplementation(ResourceManagerStartHandler.class, YARNRuntimeStartHandler.class)
+ .bindImplementation(ResourceManagerStopHandler.class, YARNRuntimeStopHandler.class)
.bindConstructor(YarnConfiguration.class, YarnConfigurationConstructor.class)
- .bindSetEntry(Clock.RuntimeStartHandler.class, YARNRuntimeStartHandler.class)
- .bindSetEntry(Clock.RuntimeStopHandler.class, YARNRuntimeStopHandler.class)
.bindImplementation(TempFileCreator.class, WorkingDirectoryTempFileCreator.class)
// Bind the YARN Configuration parameters
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ContainerManager.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ContainerManager.java b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ContainerManager.java
index 34b1146..a31c0e0 100644
--- a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ContainerManager.java
+++ b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ContainerManager.java
@@ -41,10 +41,6 @@ import org.apache.reef.util.Optional;
import org.apache.reef.wake.EventHandler;
import org.apache.reef.wake.remote.RemoteMessage;
import org.apache.reef.wake.remote.address.LocalAddressProvider;
-import org.apache.reef.wake.time.Time;
-import org.apache.reef.wake.time.runtime.RuntimeClock;
-import org.apache.reef.wake.time.runtime.event.RuntimeStart;
-import org.apache.reef.wake.time.runtime.event.RuntimeStop;
import java.io.File;
import java.util.ArrayList;
@@ -109,7 +105,6 @@ final class ContainerManager implements AutoCloseable {
@Inject
ContainerManager(
final RemoteManager remoteManager,
- final RuntimeClock clock,
final REEFFileNames fileNames,
@Parameter(MaxNumberOfEvaluators.class) final int capacity,
@Parameter(RootFolder.class) final String rootFolderName,
@@ -142,24 +137,6 @@ final class ContainerManager implements AutoCloseable {
release(error.getId());
}
});
- clock.registerEventHandler(RuntimeStart.class, new EventHandler<Time>() {
- @Override
- public void onNext(final Time value) {
- synchronized (ContainerManager.this) {
- ContainerManager.this.sendNodeDescriptors();
- }
- }
- });
-
- clock.registerEventHandler(RuntimeStop.class, new EventHandler<Time>() {
- @Override
- public void onNext(final Time value) {
- synchronized (ContainerManager.this) {
- LOG.log(Level.FINEST, "RuntimeStop: close the container manager");
- ContainerManager.this.close();
- }
- }
- });
init();
@@ -218,6 +195,9 @@ final class ContainerManager implements AutoCloseable {
}
}
+ synchronized void start() {
+ sendNodeDescriptors();
+ }
private void sendNodeDescriptors() {
final IDMaker idmaker = new IDMaker("Node-");
@@ -412,7 +392,7 @@ final class ContainerManager implements AutoCloseable {
}
@Override
- public void close() {
+ public synchronized void close() {
synchronized (this.containers) {
if (this.containers.isEmpty()) {
LOG.log(Level.FINEST, "Clean shutdown with no outstanding containers.");
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/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 308e316..82c3560 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
@@ -18,9 +18,7 @@
*/
package org.apache.reef.runtime.local.driver;
-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.api.*;
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;
@@ -73,6 +71,8 @@ public class LocalDriverConfiguration extends ConfigurationModuleBuilder {
.bindImplementation(ResourceLaunchHandler.class, LocalResourceLaunchHandler.class)
.bindImplementation(ResourceRequestHandler.class, LocalResourceRequestHandler.class)
.bindImplementation(ResourceReleaseHandler.class, LocalResourceReleaseHandler.class)
+ .bindImplementation(ResourceManagerStartHandler.class, LocalResourceManagerStartHandler.class)
+ .bindImplementation(ResourceManagerStopHandler.class, LocalResourceManagerStopHandler.class)
.bindNamedParameter(ClientRemoteIdentifier.class, CLIENT_REMOTE_IDENTIFIER)
.bindNamedParameter(ErrorHandlerRID.class, CLIENT_REMOTE_IDENTIFIER)
.bindNamedParameter(JobIdentifier.class, JOB_IDENTIFIER)
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalResourceManagerStartHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalResourceManagerStartHandler.java b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalResourceManagerStartHandler.java
new file mode 100644
index 0000000..ace2736
--- /dev/null
+++ b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalResourceManagerStartHandler.java
@@ -0,0 +1,39 @@
+/**
+ * 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.local.driver;
+
+import org.apache.reef.runtime.common.driver.api.ResourceManagerStartHandler;
+import org.apache.reef.wake.time.runtime.event.RuntimeStart;
+
+import javax.inject.Inject;
+
+final class LocalResourceManagerStartHandler implements ResourceManagerStartHandler {
+
+ private final ContainerManager containerManager;
+
+ @Inject
+ private LocalResourceManagerStartHandler(final ContainerManager containerManager) {
+ this.containerManager = containerManager;
+ }
+
+ @Override
+ public void onNext(final RuntimeStart value) {
+ this.containerManager.start();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalResourceManagerStopHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalResourceManagerStopHandler.java b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalResourceManagerStopHandler.java
new file mode 100644
index 0000000..a30eaa2
--- /dev/null
+++ b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/LocalResourceManagerStopHandler.java
@@ -0,0 +1,39 @@
+/**
+ * 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.local.driver;
+
+import org.apache.reef.runtime.common.driver.api.ResourceManagerStopHandler;
+import org.apache.reef.wake.time.runtime.event.RuntimeStop;
+
+import javax.inject.Inject;
+
+final class LocalResourceManagerStopHandler implements ResourceManagerStopHandler {
+
+ private final ContainerManager containerManager;
+
+ @Inject
+ private LocalResourceManagerStopHandler(final ContainerManager containerManager) {
+ this.containerManager = containerManager;
+ }
+
+ @Override
+ public void onNext(final RuntimeStop value) {
+ this.containerManager.close();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/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 4593567..eadfe98 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
@@ -21,9 +21,7 @@ package org.apache.reef.runtime.mesos.driver;
import org.apache.hadoop.conf.Configuration;
import org.apache.reef.io.TempFileCreator;
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.api.*;
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;
@@ -41,7 +39,6 @@ import org.apache.reef.tang.formats.RequiredParameter;
import org.apache.reef.wake.EStage;
import org.apache.reef.wake.StageConfiguration;
import org.apache.reef.wake.impl.SingleThreadStage;
-import org.apache.reef.wake.time.Clock;
/**
* Binds Driver's runtime event handlers.
@@ -81,8 +78,8 @@ public final class MesosDriverConfiguration extends ConfigurationModuleBuilder {
.bindImplementation(ResourceLaunchHandler.class, MesosResourceLaunchHandler.class)
.bindImplementation(ResourceReleaseHandler.class, MesosResourceReleaseHandler.class)
.bindImplementation(ResourceRequestHandler.class, MesosResourceRequestHandler.class)
- .bindSetEntry(Clock.RuntimeStartHandler.class, MesosRuntimeStartHandler.class)
- .bindSetEntry(Clock.RuntimeStopHandler.class, MesosRuntimeStopHandler.class)
+ .bindImplementation(ResourceManagerStartHandler.class, MesosRuntimeStartHandler.class)
+ .bindImplementation(ResourceManagerStopHandler.class, MesosRuntimeStopHandler.class)
.bindImplementation(TempFileCreator.class, WorkingDirectoryTempFileCreator.class)
.bindNamedParameter(MesosMasterIp.class, MESOS_MASTER_IP)
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStartHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStartHandler.java b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStartHandler.java
index d442a4d..268f7c9 100644
--- a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStartHandler.java
+++ b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStartHandler.java
@@ -18,12 +18,12 @@
*/
package org.apache.reef.runtime.mesos.driver;
-import org.apache.reef.wake.EventHandler;
+import org.apache.reef.runtime.common.driver.api.ResourceManagerStartHandler;
import org.apache.reef.wake.time.runtime.event.RuntimeStart;
import javax.inject.Inject;
-final class MesosRuntimeStartHandler implements EventHandler<RuntimeStart> {
+final class MesosRuntimeStartHandler implements ResourceManagerStartHandler {
private final REEFScheduler reefScheduler;
@Inject
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStopHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStopHandler.java b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStopHandler.java
index 80648d0..aa58c26 100644
--- a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStopHandler.java
+++ b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/MesosRuntimeStopHandler.java
@@ -18,12 +18,12 @@
*/
package org.apache.reef.runtime.mesos.driver;
-import org.apache.reef.wake.EventHandler;
+import org.apache.reef.runtime.common.driver.api.ResourceManagerStopHandler;
import org.apache.reef.wake.time.runtime.event.RuntimeStop;
import javax.inject.Inject;
-final class MesosRuntimeStopHandler implements EventHandler<RuntimeStop> {
+final class MesosRuntimeStopHandler implements ResourceManagerStopHandler {
private final REEFScheduler reefScheduler;
@Inject
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStartHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStartHandler.java b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStartHandler.java
index 697b4de..de53f79 100644
--- a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStartHandler.java
+++ b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStartHandler.java
@@ -18,7 +18,7 @@
*/
package org.apache.reef.runtime.yarn.driver;
-import org.apache.reef.wake.EventHandler;
+import org.apache.reef.runtime.common.driver.api.ResourceManagerStartHandler;
import org.apache.reef.wake.time.runtime.event.RuntimeStart;
import javax.inject.Inject;
@@ -26,7 +26,7 @@ import javax.inject.Inject;
/**
* Handler of RuntimeStart for the YARN Runtime.
*/
-public final class YARNRuntimeStartHandler implements EventHandler<RuntimeStart> {
+public final class YARNRuntimeStartHandler implements ResourceManagerStartHandler {
private final YarnContainerManager yarnContainerManager;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStopHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStopHandler.java b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStopHandler.java
index 82e6f2f..3d4492e 100644
--- a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStopHandler.java
+++ b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YARNRuntimeStopHandler.java
@@ -18,7 +18,7 @@
*/
package org.apache.reef.runtime.yarn.driver;
-import org.apache.reef.wake.EventHandler;
+import org.apache.reef.runtime.common.driver.api.ResourceManagerStopHandler;
import org.apache.reef.wake.time.runtime.event.RuntimeStop;
import javax.inject.Inject;
@@ -26,7 +26,7 @@ import javax.inject.Inject;
/**
* Shuts down the YARN resource manager.
*/
-public final class YARNRuntimeStopHandler implements EventHandler<RuntimeStop> {
+public final class YARNRuntimeStopHandler implements ResourceManagerStopHandler {
private final YarnContainerManager yarnContainerManager;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9c820fd5/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 89545b3..abe5c7d 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
@@ -21,9 +21,7 @@ package org.apache.reef.runtime.yarn.driver;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.reef.io.TempFileCreator;
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.api.*;
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;
@@ -39,7 +37,6 @@ import org.apache.reef.tang.formats.ConfigurationModule;
import org.apache.reef.tang.formats.ConfigurationModuleBuilder;
import org.apache.reef.tang.formats.OptionalParameter;
import org.apache.reef.tang.formats.RequiredParameter;
-import org.apache.reef.wake.time.Clock;
/**
* Created by marku_000 on 2014-07-07.
@@ -80,9 +77,9 @@ public class YarnDriverConfiguration extends ConfigurationModuleBuilder {
.bindImplementation(ResourceLaunchHandler.class, YARNResourceLaunchHandler.class)
.bindImplementation(ResourceReleaseHandler.class, YARNResourceReleaseHandler.class)
.bindImplementation(ResourceRequestHandler.class, YarnResourceRequestHandler.class)
+ .bindImplementation(ResourceManagerStartHandler.class, YARNRuntimeStartHandler.class)
+ .bindImplementation(ResourceManagerStopHandler.class, YARNRuntimeStopHandler.class)
.bindConstructor(YarnConfiguration.class, YarnConfigurationConstructor.class)
- .bindSetEntry(Clock.RuntimeStartHandler.class, YARNRuntimeStartHandler.class)
- .bindSetEntry(Clock.RuntimeStopHandler.class, YARNRuntimeStopHandler.class)
.bindImplementation(TempFileCreator.class, WorkingDirectoryTempFileCreator.class)
// Bind the YARN Configuration parameters