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 >
