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> {
+}