It is possible, but I don't think it is out of the box.  You would have to
write that layer yourself.  For example, I've written a class that can
parse a json definition of a topology and start a topology based on the
json (without a recompile, assuming all the classes referenced in json are
available in your classpath).  It makes use of reflections to create the
necessary spout/bolt objects and call the appropriate methods (for example
to call the proper grouping method for a bolt).


On Tue, Mar 4, 2014 at 12:28 PM, Can Gencer <[email protected]> wrote:

> Hi,
>
> Bit of a storm newbie here, and we are considering using storm to run some
> realtime data analytics. My question is, is there a way to update Storm
> topologies programatically? The reason for this is that some of the
> elements in the topology would need to be generated on runtime, based on
> user input.
>
> What I understand is that the way to update a topology is to kill the old
> one, compile the new one and run the new jar file using storm jar and
> StormSubmitter.submitTopology will upload the jar file to the server.
>
> Instead, I would like to build the topology, and send it to the server
> directly all within a separate application, I'm wondering if there's any
> way to do this? Not sure how this would even be possible, as the topology
> can contain arbitrary Java classes (though the topology changes would not
> introduce any new classes),  but any help/ideas would be much appreciated.
>
> Regards,
> Can
>

Reply via email to