You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by da...@apache.org on 2014/06/23 21:42:22 UTC
[3/6] git commit: Added support for per-topology environment-variables
Added support for per-topology environment-variables
Project: http://git-wip-us.apache.org/repos/asf/incubator-storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-storm/commit/e1735d27
Tree: http://git-wip-us.apache.org/repos/asf/incubator-storm/tree/e1735d27
Diff: http://git-wip-us.apache.org/repos/asf/incubator-storm/diff/e1735d27
Branch: refs/heads/master
Commit: e1735d2760a7e66d0459968d066cfafb0a9ba1cf
Parents: 57b5e1a
Author: Kyle Nusbaum <kn...@yahoo-inc.com>
Authored: Tue Jun 17 23:00:43 2014 +0000
Committer: Kyle Nusbaum <kn...@yahoo-inc.com>
Committed: Tue Jun 17 23:00:43 2014 +0000
----------------------------------------------------------------------
conf/defaults.yaml | 1 +
.../src/clj/backtype/storm/daemon/supervisor.clj | 5 ++++-
storm-core/src/jvm/backtype/storm/Config.java | 15 +++++++++++++++
3 files changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/e1735d27/conf/defaults.yaml
----------------------------------------------------------------------
diff --git a/conf/defaults.yaml b/conf/defaults.yaml
index 9e31281..c9c813c 100644
--- a/conf/defaults.yaml
+++ b/conf/defaults.yaml
@@ -150,5 +150,6 @@ topology.kryo.factory: "backtype.storm.serialization.DefaultKryoFactory"
topology.tuple.serializer: "backtype.storm.serialization.types.ListDelegateSerializer"
topology.trident.batch.emit.interval.millis: 500
topology.classpath: null
+topology.environment: null
dev.zookeeper.path: "/tmp/dev-storm-zookeeper"
http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/e1735d27/storm-core/src/clj/backtype/storm/daemon/supervisor.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/daemon/supervisor.clj b/storm-core/src/clj/backtype/storm/daemon/supervisor.clj
index 61b0730..0969970 100644
--- a/storm-core/src/clj/backtype/storm/daemon/supervisor.clj
+++ b/storm-core/src/clj/backtype/storm/daemon/supervisor.clj
@@ -477,6 +477,9 @@
(substitute-worker-childopts s port))
topo-worker-childopts (when-let [s (storm-conf TOPOLOGY-WORKER-CHILDOPTS)]
(substitute-worker-childopts s port))
+ topology-worker-environment (if-let [env (storm-conf TOPOLOGY-ENVIRONMENT)]
+ (merge env {"LD_LIBRARY_PATH" jlp})
+ {"LD_LIBRARY_PATH" jlp})
logfilename (str "worker-" port ".log")
command (concat
[(java-cmd) "-server"]
@@ -500,7 +503,7 @@
(map #(str \' (clojure.string/escape % {\' "\\'"}) \'))
(clojure.string/join " "))]
(log-message "Launching worker with command: " shell-cmd)
- (launch-process command :environment {"LD_LIBRARY_PATH" jlp})
+ (launch-process command :environment topology-worker-environment)
))
;; local implementation
http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/e1735d27/storm-core/src/jvm/backtype/storm/Config.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/Config.java b/storm-core/src/jvm/backtype/storm/Config.java
index 4131918..eefaee7 100644
--- a/storm-core/src/jvm/backtype/storm/Config.java
+++ b/storm-core/src/jvm/backtype/storm/Config.java
@@ -688,6 +688,13 @@ public class Config extends HashMap<String, Object> {
public static final Object TOPOLOGY_CLASSPATH_SCHEMA = ConfigValidation.StringOrStringListValidator;
/**
+ * Topology-specific environment variables for the worker child process.
+ * This is added to the existing environment (that of the supervisor)
+ */
+ public static final String TOPOLOGY_ENVIRONMENT="topology.environment";
+ public static final Object TOPOLOGY_ENVIRONMENT_SCHEMA = Map.class;
+
+ /**
* This config is available for TransactionalSpouts, and contains the id ( a String) for
* the transactional topology. This id is used to store the state of the transactional
* topology in Zookeeper.
@@ -857,6 +864,14 @@ public class Config extends HashMap<String, Object> {
setClasspath(this, cp);
}
+ public static void setEnvironment(Map conf, Map env) {
+ conf.put(Config.TOPOLOGY_ENVIRONMENT, env);
+ }
+
+ public void setEnvironment(Map env) {
+ setEnvironment(this, env);
+ }
+
public static void setDebug(Map conf, boolean isOn) {
conf.put(Config.TOPOLOGY_DEBUG, isOn);
}