From 64e5eb305e40903035566f5ce3e40e67edf61475 Mon Sep 17 00:00:00 2001 From: Wang Qing Date: Wed, 17 Oct 2018 06:03:18 +0800 Subject: [PATCH] [Java] Add jvm-parameters in Config. (#3065) --- .../src/main/java/org/ray/runtime/config/RayConfig.java | 8 ++++++++ .../src/main/java/org/ray/runtime/runner/RunManager.java | 6 ++++-- java/runtime/src/main/resources/ray.default.conf | 3 +++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/java/runtime/src/main/java/org/ray/runtime/config/RayConfig.java b/java/runtime/src/main/java/org/ray/runtime/config/RayConfig.java index d374d25a5..b172a4111 100644 --- a/java/runtime/src/main/java/org/ray/runtime/config/RayConfig.java +++ b/java/runtime/src/main/java/org/ray/runtime/config/RayConfig.java @@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList; import com.typesafe.config.Config; import com.typesafe.config.ConfigException; import com.typesafe.config.ConfigFactory; + import java.util.List; import java.util.Map; import org.ray.api.id.UniqueId; @@ -35,6 +36,7 @@ public class RayConfig { public final boolean redirectOutput; public final List libraryPath; public final List classpath; + public final List jvmParameters; private String redisAddress; private String redisIp; @@ -127,6 +129,12 @@ public class RayConfig { List customLibraryPath = config.getStringList("ray.library.path"); // custom classpath classpath = config.getStringList("ray.classpath"); + // custom worker jvm parameters + if (config.hasPath("ray.worker.jvm-parameters")) { + jvmParameters = config.getStringList("ray.worker.jvm-parameters"); + } else { + jvmParameters = ImmutableList.of(); + } // redis configurations String redisAddress = config.getString("ray.redis.address"); diff --git a/java/runtime/src/main/java/org/ray/runtime/runner/RunManager.java b/java/runtime/src/main/java/org/ray/runtime/runner/RunManager.java index 03429c963..3be219dca 100644 --- a/java/runtime/src/main/java/org/ray/runtime/runner/RunManager.java +++ b/java/runtime/src/main/java/org/ray/runtime/runner/RunManager.java @@ -205,8 +205,8 @@ public class RunManager { // Generate classpath based on current classpath + user-defined classpath. String classpath = concatPath(Stream.concat( - Stream.of(System.getProperty("java.class.path").split(":")), - rayConfig.classpath.stream() + rayConfig.classpath.stream(), + Stream.of(System.getProperty("java.class.path").split(":")) )); cmd.add(classpath); @@ -227,6 +227,8 @@ public class RunManager { // Config overwrite cmd.add("-Dray.redis.address=" + rayConfig.getRedisAddress()); + cmd.addAll(rayConfig.jvmParameters); + // Main class cmd.add(WORKER_CLASS); String command = Joiner.on(" ").join(cmd); diff --git a/java/runtime/src/main/resources/ray.default.conf b/java/runtime/src/main/resources/ray.default.conf index 892d90c6c..b45d7dc63 100644 --- a/java/runtime/src/main/resources/ray.default.conf +++ b/java/runtime/src/main/resources/ray.default.conf @@ -43,6 +43,9 @@ ray { // Otherwise, output will be printed to console. redirect-output: true + // Custom worker jvm parameters. + worker.jvm-parameters: [] + // Custom `java.library.path` // Note, do not use `dir1:dir2` format, put each dir as a list item. library.path: []