Reputation: 945
Is there a way to package storm and cassandra into an executable jar so that as part of running the jar a single node storm and cassandra will be deployed and serve the program.
thanks.
Upvotes: 1
Views: 278
Reputation: 8088
I think you are somewhat confused about how Storm architecture works, unless you really are planning to run Storm in local mode, in which case I'm not sure why you're bothering to do that if you have a Cassandra cluster: local mode is only meant for testing and many cases will perform worse than an actual cluster would. You can get better performance locally by just writing multithreaded code without pulling in all the Storm functionality which is really intended to aid in robust stream processing over a possibly unreliable cluster.
To me it sounds like what you probably really mean to do is have each Cassandra node also be a Storm supervisor node running one (or more) workers. You will also somewhere need to have a Nimbus server and a Zookeeper cluster to make the whole thing go.
Given all this, I suppose it's theoretically possible to have it all in one jar, but that seems like more trouble than it's worth. Cassandra nodes and Storm supervisors are already dead simple to setup, and there's no reason they can't run together on the same server, so I would recommend against it.
Further, I'm not clear on your use case, but it's hard to imagine a situation where you'd actually want to do this. The only things that come to mind are either (a) your Cassandra workload is very disk heavy with no real computation happening on the nodes or (b) you have over-provisioned physical hardware that you are looking to take up slack capacity on. Otherwise I think you'd almost certainly be better off with separate machines for Storm and Cassandra.
Upvotes: 2