Repository: incubator-samoa Updated Branches: refs/heads/master c97ac274d -> d454deb6c
SAMOA-29: Fix storm local execution mode duration Project: http://git-wip-us.apache.org/repos/asf/incubator-samoa/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-samoa/commit/edde7c1c Tree: http://git-wip-us.apache.org/repos/asf/incubator-samoa/tree/edde7c1c Diff: http://git-wip-us.apache.org/repos/asf/incubator-samoa/diff/edde7c1c Branch: refs/heads/master Commit: edde7c1ce33a8540abdf985ad0b75ea42c6e8f22 Parents: c97ac27 Author: jayadeepj <[email protected]> Authored: Thu Jul 30 21:38:14 2015 -0700 Committer: jayadeepj <[email protected]> Committed: Thu Jul 30 21:38:14 2015 -0700 ---------------------------------------------------------------------- bin/samoa-storm.properties | 2 ++ samoa-storm/pom.xml | 8 ++++++++ .../java/org/apache/samoa/LocalStormDoTask.java | 8 +++++++- .../samoa/topology/impl/StormSamoaUtils.java | 21 ++++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-samoa/blob/edde7c1c/bin/samoa-storm.properties ---------------------------------------------------------------------- diff --git a/bin/samoa-storm.properties b/bin/samoa-storm.properties index cf46080..423b8b2 100644 --- a/bin/samoa-storm.properties +++ b/bin/samoa-storm.properties @@ -33,3 +33,5 @@ samoa.storm.mode=local # possible values: any integer greater than 0 samoa.storm.numworker=4 +# samoa.storm.local.mode.execution.duration corresponds to the execution duration of the local topology in seconds. +samoa.storm.local.mode.execution.duration=100 http://git-wip-us.apache.org/repos/asf/incubator-samoa/blob/edde7c1c/samoa-storm/pom.xml ---------------------------------------------------------------------- diff --git a/samoa-storm/pom.xml b/samoa-storm/pom.xml index 2cb1566..fd4029c 100644 --- a/samoa-storm/pom.xml +++ b/samoa-storm/pom.xml @@ -121,5 +121,13 @@ </configuration> </plugin> </plugins> + <resources> + <resource> + <directory>${project.basedir}/../bin</directory> + <includes> + <include>*storm.properties</include> + </includes> + </resource> + </resources> </build> </project> http://git-wip-us.apache.org/repos/asf/incubator-samoa/blob/edde7c1c/samoa-storm/src/main/java/org/apache/samoa/LocalStormDoTask.java ---------------------------------------------------------------------- diff --git a/samoa-storm/src/main/java/org/apache/samoa/LocalStormDoTask.java b/samoa-storm/src/main/java/org/apache/samoa/LocalStormDoTask.java index f2b9c0c..a31fa58 100644 --- a/samoa-storm/src/main/java/org/apache/samoa/LocalStormDoTask.java +++ b/samoa-storm/src/main/java/org/apache/samoa/LocalStormDoTask.java @@ -27,6 +27,7 @@ import org.apache.samoa.topology.impl.StormSamoaUtils; import org.apache.samoa.topology.impl.StormTopology; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.commons.configuration.Configuration; import backtype.storm.Config; import backtype.storm.utils.Utils; @@ -40,6 +41,8 @@ import backtype.storm.utils.Utils; public class LocalStormDoTask { private static final Logger logger = LoggerFactory.getLogger(LocalStormDoTask.class); + private static final String EXECUTION_DURATION_KEY ="samoa.storm.local.mode.execution.duration"; + private static final String SAMOA_STORM_PROPERTY_FILE_LOC ="samoa-storm.properties"; /** * The main method. @@ -69,7 +72,10 @@ public class LocalStormDoTask { backtype.storm.LocalCluster cluster = new backtype.storm.LocalCluster(); cluster.submitTopology(topologyName, conf, stormTopo.getStormBuilder().createTopology()); - backtype.storm.utils.Utils.sleep(600 * 1000); + // Read local mode execution duration from property file + Configuration stormConfig = StormSamoaUtils.getPropertyConfig(LocalStormDoTask.SAMOA_STORM_PROPERTY_FILE_LOC); + long executionDuration= stormConfig.getLong(LocalStormDoTask.EXECUTION_DURATION_KEY); + backtype.storm.utils.Utils.sleep(executionDuration * 1000); cluster.killTopology(topologyName); cluster.shutdown(); http://git-wip-us.apache.org/repos/asf/incubator-samoa/blob/edde7c1c/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSamoaUtils.java ---------------------------------------------------------------------- diff --git a/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSamoaUtils.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSamoaUtils.java index 86a5578..7f7e578 100644 --- a/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSamoaUtils.java +++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSamoaUtils.java @@ -33,6 +33,10 @@ import org.apache.samoa.tasks.Task; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; + /** * Utility class for samoa-storm project. It is used by StormDoTask to process its arguments. * @@ -106,4 +110,21 @@ public class StormSamoaUtils { } return task; } + + public static Configuration getPropertyConfig(String configPropertyPath){ + Configuration config = null; + try { + config = new PropertiesConfiguration(configPropertyPath); + if (null == config || config.isEmpty()) { + logger.error("Configuration is null or empty at file = {}",configPropertyPath); + throw new RuntimeException("Configuration is null or empty : " + configPropertyPath); + } + } + catch(ConfigurationException configurationException) + { + logger.error("ConfigurationException while reading property file = {}",configurationException); + throw new RuntimeException("ConfigurationException while reading property file : " + configPropertyPath); + } + return config; + } }
