There is a fundamental difference in starting the topology in LocalCluster
or remotely via StormSubmitter
(this is the default setting in the project).
storm-core
<scope>provided</scope>
, . provided
maven, jar
, JAR. , , - , default.yaml
compile
. storm-core
jar
. Storm defaults.yaml
"" (.. ) jar
. , Storm , , .
, provided
, . , , CLASSPATH JVM. provided
storm-core
ClassNotFound
.
, , compile
Main/Bolt/Spout maven-jar-plugin
. jar, storm-core
.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>MyTopology</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<includes>
<include>my/topology/package/**/*.class</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>