Using Eclipe export will package "storm-core.jar" and it's dependencies
into you user jar. "storm-core.jar" contains the duplicate default.yaml
class. You should not include "storm-core.jar" and its dependencies
after all.

You might try "export -> Java -> jar". This only packages your own code.
If you don't have any depended libraries of you own code (expect storm
dependencies) this should work. Otherwise, you need to include those
manually into your jar (or deploy them on all node in you cluster in the
default storm-lib directory).

Using maven is a good alternative. However, it's more complicated as it
can be explained here in short. Please refer to the maven manual first.


-Matthias


On 07/16/2015 02:25 PM, Nikos Koukos 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]
> <mailto:[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] <mailto:[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
> 
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to