You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by jo...@apache.org on 2015/11/14 08:38:55 UTC
incubator-reef git commit: [REEF-930] Make Mesos slave port number
configurable
Repository: incubator-reef
Updated Branches:
refs/heads/master 03cef56ba -> 27fa641e2
[REEF-930] Make Mesos slave port number configurable
JIRA:
[REEF-930](https://issues.apache.org/jira/browse/REEF-930)
Pull request:
This closes #626
Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/27fa641e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/27fa641e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/27fa641e
Branch: refs/heads/master
Commit: 27fa641e239f03624abaf800b6979fd9ed442a7b
Parents: 03cef56
Author: Dongjoon Hyun <do...@apache.org>
Authored: Wed Nov 11 05:21:30 2015 +0900
Committer: John Yang <jo...@apache.org>
Committed: Sat Nov 14 16:37:38 2015 +0900
----------------------------------------------------------------------
.../mesos/driver/MesosDriverConfiguration.java | 9 ++++++-
.../runtime/mesos/driver/REEFScheduler.java | 8 +++---
.../mesos/driver/parameters/MesosSlavePort.java | 26 ++++++++++++++++++++
3 files changed, 39 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/27fa641e/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 fed03a4..69c4373 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
@@ -31,6 +31,7 @@ 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;
+import org.apache.reef.runtime.mesos.driver.parameters.MesosSlavePort;
import org.apache.reef.runtime.mesos.driver.parameters.JobSubmissionDirectoryPrefix;
import org.apache.reef.runtime.mesos.util.HDFSConfigurationConstructor;
import org.apache.reef.tang.formats.ConfigurationModule;
@@ -61,6 +62,11 @@ public final class MesosDriverConfiguration extends ConfigurationModuleBuilder {
public static final RequiredParameter<String> MESOS_MASTER_IP = new RequiredParameter<>();
/**
+ * The port number of Mesos Slave.
+ */
+ public static final OptionalParameter<Integer> MESOS_SLAVE_PORT = new OptionalParameter<>();
+
+ /**
* The client remote identifier.
*/
public static final OptionalParameter<String> CLIENT_REMOTE_IDENTIFIER = new OptionalParameter<>();
@@ -89,6 +95,7 @@ public final class MesosDriverConfiguration extends ConfigurationModuleBuilder {
.bindImplementation(TempFileCreator.class, WorkingDirectoryTempFileCreator.class)
.bindNamedParameter(MesosMasterIp.class, MESOS_MASTER_IP)
+ .bindNamedParameter(MesosSlavePort.class, MESOS_SLAVE_PORT)
.bindConstructor(Configuration.class, HDFSConfigurationConstructor.class)
.bindImplementation(RuntimeClasspathProvider.class, MesosClasspathProvider.class)
@@ -97,7 +104,7 @@ public final class MesosDriverConfiguration extends ConfigurationModuleBuilder {
.bindNamedParameter(StageConfiguration.StageHandler.class, MesosSchedulerDriverExecutor.class)
.bindImplementation(EStage.class, SingleThreadStage.class)
- // Bind the fields bound in AbstractDriverRuntimeConfiguration
+ // Bind the fields bound in AbstractDriverRuntimeConfiguration
.bindNamedParameter(JobIdentifier.class, JOB_IDENTIFIER)
.bindNamedParameter(LaunchID.class, JOB_IDENTIFIER)
.bindNamedParameter(EvaluatorTimeout.class, EVALUATOR_TIMEOUT)
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/27fa641e/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/REEFScheduler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/REEFScheduler.java b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/REEFScheduler.java
index 045bb49..2dd4063 100644
--- a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/REEFScheduler.java
+++ b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/REEFScheduler.java
@@ -35,6 +35,7 @@ import org.apache.reef.runtime.common.driver.resourcemanager.RuntimeStatusEventI
import org.apache.reef.runtime.common.files.ClasspathProvider;
import org.apache.reef.runtime.common.files.REEFFileNames;
import org.apache.reef.runtime.mesos.driver.parameters.MesosMasterIp;
+import org.apache.reef.runtime.mesos.driver.parameters.MesosSlavePort;
import org.apache.reef.runtime.mesos.driver.parameters.JobSubmissionDirectoryPrefix;
import org.apache.reef.runtime.mesos.evaluator.REEFExecutor;
import org.apache.reef.runtime.mesos.util.EvaluatorControl;
@@ -93,8 +94,6 @@ final class REEFScheduler implements Scheduler {
private static final Logger LOG = Logger.getLogger(REEFScheduler.class.getName());
private static final String REEF_TAR = "reef.tar.gz";
private static final String RUNTIME_NAME = "MESOS";
- private static final int MESOS_SLAVE_PORT = 5051;
- // Assumes for now that all slaves use port 5051(default) TODO: make it configurable.
private static final String REEF_JOB_NAME_PREFIX = "reef-job-";
private final String reefTarUri;
@@ -105,6 +104,7 @@ final class REEFScheduler implements Scheduler {
private final MesosRemoteManager mesosRemoteManager;
private final SchedulerDriver mesosMaster;
+ private int mesosSlavePort;
private final String jobSubmissionDirectoryPrefix;
private final EStage<SchedulerDriver> schedulerDriverEStage;
private final Map<String, Offer> offers = new ConcurrentHashMap<>();
@@ -123,6 +123,7 @@ final class REEFScheduler implements Scheduler {
final ClasspathProvider classpath,
@Parameter(JobIdentifier.class) final String jobIdentifier,
@Parameter(MesosMasterIp.class) final String masterIp,
+ @Parameter(MesosSlavePort.class) final int slavePort,
@Parameter(JobSubmissionDirectoryPrefix.class) final String jobSubmissionDirectoryPrefix) {
this.mesosRemoteManager = mesosRemoteManager;
this.reefEventHandlers = reefEventHandlers;
@@ -138,6 +139,7 @@ final class REEFScheduler implements Scheduler {
.setName(REEF_JOB_NAME_PREFIX + jobIdentifier)
.build();
this.mesosMaster = new MesosSchedulerDriver(this, frameworkInfo, masterIp);
+ this.mesosSlavePort = slavePort;
}
@Override
@@ -165,7 +167,7 @@ final class REEFScheduler implements Scheduler {
nodeDescriptorEvents.put(offer.getSlaveId().getValue(), NodeDescriptorEventImpl.newBuilder()
.setIdentifier(offer.getSlaveId().getValue())
.setHostName(offer.getHostname())
- .setPort(MESOS_SLAVE_PORT)
+ .setPort(this.mesosSlavePort)
.setMemorySize(getMemory(offer)));
} else {
final NodeDescriptorEventImpl.Builder builder = nodeDescriptorEvents.get(offer.getSlaveId().getValue());
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/27fa641e/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/parameters/MesosSlavePort.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/parameters/MesosSlavePort.java b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/parameters/MesosSlavePort.java
new file mode 100644
index 0000000..811b178
--- /dev/null
+++ b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/parameters/MesosSlavePort.java
@@ -0,0 +1,26 @@
+/*
+ * 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.mesos.driver.parameters;
+
+import org.apache.reef.tang.annotations.Name;
+import org.apache.reef.tang.annotations.NamedParameter;
+
+@NamedParameter(doc = "The port number of Mesos Slave", default_value="5051")
+public final class MesosSlavePort implements Name<Integer> {
+}