You can put the jars in $STORM_HOME/lib/ on each of the supervisor nodes.

There are a couple of reasons why this is not recommended:
1) you need to be careful not to override any built-in storm libraries
since this would be effectively changing storm and will have unpredictable
results
2) you are creating a management issue for yourself...with just one
topology it is probably fine, but consider that as you add and remove
supervisor nodes to your cluster you need to ensure that the lib directory
stays synced with your dependencies or else you'll get spurious class
loading issues...it is pretty much equivalent to the reasoning behind _not_
putting application dependency jars in your JVM's lib directory. To put it
another way, adding a dependency to your topology goes from being a dev
task to an ops task.




On Wed, Feb 19, 2014 at 9:45 AM, Harald Kirsch <harald.kir...@raytion.com>wrote:

> Hi Adam,
>
> thanks for the hint. Maven is not part of our build environment. We are
> using an ant/ivy combination.
>
> Which one would be the supervisor's lib directory? Why is it not
> recommended to be used? We intend to run only one dedicated topology
> anyway, so interference between those is not an issue.
>
> Harald
>
>
> On 19.02.2014 15:25, Adam Lewis wrote:
>
>> Is it possible for you to use maven to build your fat jar?  Check out
>> the maven shade plugin, which has handling for things like META-INF, and
>> some special cases (like services manifests) such as merging those from
>> multiple jar files.
>>
>> http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-
>> transformers.html
>>
>> The (not recommended) alternative is to place your JARs in the
>> supervisor's lib directory.
>>
>>
>> On Wed, Feb 19, 2014 at 9:15 AM, Harald Kirsch
>> <harald.kir...@raytion.com <mailto:harald.kir...@raytion.com>> wrote:
>>
>>     I am trying to use tika-parsers-1.4.jar in a self-build fat jar,
>>     meaning I just unjar all jars into one directory and jar the result
>>     into one fat jar.
>>
>>     The problem is, that this produces an unreliable META-INF, so just
>>     before running jar, I delete the META-INF directory.
>>
>>     This seemed to work, except that tika-parsers does not work anymore.
>>     No error, no exception, no log, it just returns nothing. And I can
>>     boil this down to the META-INF.
>>
>>     Now, there might be a way to hand-craft a fat jar that works.
>>     However I wonder if there is a better way  to add additional jars to
>>     a topology?
>>
>>     Harald.
>>
>>
>>
> --
> Harald Kirsch
> Raytion GmbH
> Kaiser-Friedrich-Ring 74
> 40547 Duesseldorf
> Fon +49-211-550266-0
> Fax +49-211-550266-19
> http://www.raytion.com
>

Reply via email to