Hi,
I am using (maven)profiles for this:
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<storm.core.scope>compile</storm.core.scope>
</properties>
</profile>
<profile>
<id>remote</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<storm.core.scope>provided</storm.core.scope>
</properties>
</profile>
And later:
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>${storm.framework.version}</version>
<!-- keep storm out of the jar-with-dependencies-->
<scope>${storm.core.scope}</scope>
</dependency>
You can then create the artifact by running mvn clean install (local) or mvn
clean install -Premote for remote deployments.
For creating a runnable jar, I recommend the shade-plugin:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Regards,
Tom
From: Alex Ott [mailto:[email protected]]
Sent: Donnerstag, 16. Juli 2015 14:53
To: [email protected]
Subject: Re: Deploying my topology to Remote Cluster (From: Eclipse, To:
Cluster)
You can check the "Maven by Example"
(http://books.sonatype.com/mvnex-book/reference/public-book.html) first, and
continue with "Maven: The Complete Reference"
(http://books.sonatype.com/mvnref-book/reference/public-book.html) after -
these 2 books were parts of the "Maven: The Definitive Guide" by O'Reilly...
On Thu, Jul 16, 2015 at 2:25 PM, Nikos Koukos <[email protected]> wrote:
No. I saw that a lot of people refer to this but i couldnt understand how can i
do this. I am a novice user of unix and storm. Can u guide me maybe with some
step-by-step help.
Thank you
2015-07-16 15:18 GMT+03:00 Alex Ott <[email protected]>:
Have you tried to build it with maven using 'mvn assembly:assembly' command?
On Thu, Jul 16, 2015 at 2:14 PM, Nikos Koukos <[email protected]> wrote:
I have completed my topology in eclipse some days ago and i worked in windows
system, eclipse Luna with m2e 1.5 plugin. My to topology works fine and now it
is the time to deploy it to remote cluster.
So I export my project with eclipse as runnable JAR. (Right Click(on my
project)->Export...->Java->Runnable JAR file->Select radio button 'Package
required libraries into generated JAR file'->Finish
So i connect my pc to the server with putty, i upload my jar file with WinSCP
to the server and i run my topology:
-storm jar final.jar main.java.storm.Main submitted topology
But i get this exception:
Exception in thread "main" java.lang.ExceptionInInitializerError
at
backtype.storm.topology.TopologyBuilder$BoltGetter.customGrouping(TopologyBuilder.java:340)
at
backtype.storm.topology.TopologyBuilder$BoltGetter.customGrouping(TopologyBuilder.java:264)
at main.java.storm.Main.main(Main.java:47)
Caused by: java.lang.RuntimeException: Found multiple defaults.yaml resources.
You're probably bundling the Storm jars with your topology jar.
[jar:file:/home/gdidymiotis/teliko_1.0.1_runnable.jar!/defaults.yaml,
jar:file:/usr/hdp/2.2.4.2-2/storm/lib/storm-core-0.9.3.2.2.4.2-2.jar!/defaults.yaml]
at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:139)
at backtype.storm.utils.Utils.readDefaultConfig(Utils.java:166)
at backtype.storm.utils.Utils.readStormConfig(Utils.java:190)
at backtype.storm.utils.Utils.<clinit>(Utils.java:77)
... 3 more
In other post with similar problems people suggest to exclude some jar files.
But unfortunately there is not an option to exclude during export. And also
nobody describes another detailed solution with steps to follow.
Some extra maybe useful information i attach the pom.xml file(i really don't
know if this file make any difference in cluster mode) and a print-screen of
the extracted jar_file in order to see the files that are inside the exported
jar.
--
With best wishes, Alex Ott
http://alexott.net/
Twitter: alexott_en (English), alexott (Russian)
Skype: alex.ott
--
With best wishes, Alex Ott
http://alexott.net/
Twitter: alexott_en (English), alexott (Russian)
Skype: alex.ott