Apache Storm Flux change topology - apache-storm

Is it possible to change the topology layout while it is running? I would like to change the stream groupings and bolts while it is active.
Submitting the yaml file with the new topology layout says it cannot deploy since it is already running.
I'm using Apache Storm 0.10.0
Thanks

It is not possible to change the structure of a topology while it is running. You need to kill the topology and redeploy the new version afterwards.
The only parameter you can change while a topology is running it the parallelism. See here for more details:
V 2.0.0 - https://storm.apache.org/releases/2.0.0/Understanding-the-parallelism-of-a-Storm-topology.html

Related

Storm UI gets hang with 'Loading topology summary'

I'm unable to view the topology summary in Storm UI (in Ambari). The UI gets hang with "Loading Topology Summary" message. Please help me out to resolve this issue.
Ambari version : 2.6.0.0
HDP: 2.6.3.0
Storm : 1.1.0
Regards,
Naresh.
Here is the Image
I too ran across this recently. Turns out the metadata stored in ZK was out of date with the Broker IDs. You can read more about it and how to resolve it here: https://community.hortonworks.com/articles/197972/storm-ui-hung-with-loading-topology-summary.html
Looks like your storm state is not updated in the zookeeper. Try cleaning the current storm states from zookeeper and then restart storm from ambari UI.

Add bolts in a running topology of storm

I deploy a storm cluster with version 1.0.2. There is a case as below:
A topology is created and is submitted on the cluster to do some analysis for one client/customer. When another client also needs the same analysis, as I think, the similar bolts can be created and append the spout in the topology. I wonder if it's possible to create such bolts when the topology is running. That means the running analysis for the first client can't be interrupted. Is it possible?
Thanks for your any comments.
Max
Altering a running topology is not possible. You need to kill the topology and re-submit it with the newly added bolt.

Apache Storm - spout and bolts not present in Storm UI

I am developing a storm topology locally. I am using the Storm 0.9.2-incubating and have developed a simple Topology. When I deploy it using the LocalCluster() option, it works fine, but it will not show up in my Storm UI it just executes.
When I deploy it regularly, it will show the Topology in my Storm UI, but no spouts or bolts will be visible when I click it.
I have also tried this with example WordCountTopology that comes in many storm starter projects. The same behavior happens.
My question is really, why are the spouts and bolts not showing up? If you deploy a topology locally without using LocalCluser() option will that cause problems? Is it possible to deploy a topology on my local box and see it in Storm UI with all the spouts and bolts and not have it execute immediately, but wait for something such as a kafka message?
Are you running Storm Supervisor? If you deploy a new topology and Supervisor isn't running the topology will show up in the UI but since its never initialized it doesn't show any stats when you click into it.

Storm UI not working

We are executing a Storm topology in pseudo mode.
Storm topology is executing fine and able to connect Storm UI (8080).
But Storm UI is not displaying the running topology information.
Restarted the storm UI process also but no use.
Does storm needs special configuration to display running topology in Storm UI?
You have only to provide port to ui.port option in storm.yaml, like: ui.port: 8080, also made sure that provided port is not already in use. And you don't need to run supervisor to check your Storm UI is running or not, just run nimbus and start ui.
Provide ui.port in storm.yaml file, default port is 8080
Start storm ui by bin/storm ui
I am facing same issue, because my port is already in use so I provided manually port number..
just add ui.port: 8090 in your storm.yaml file which is present inside conf folder of apache storm. And re-run the command storm ui .
Now type http://localhost:8090/ in your google chrome or any other browser.
What versions of Storm are you running?
Check to make sure both Nimbus AND a Supervisor are running. I have seen that if a topology is deployed with no supervisor running then nothing is displayed.
I was also facing the same issue. As the default port is 8080 and is already in use, you might be getting 404 there.
As suggested above as well just use ui.port: 8081 or anything else then 8080 which is not in use.
Mind the space between : and 8081, I faced problem for that as well. Not sure but if you face problem, just mind that space as well and include it.
Also after this if you face any issue, please run the zookeeper/bin> zkcli -server yourhostname command and try it.
Good luck !!
When running the pseudo mode, We normally forget giving a name to topology. If we don't provide the name for topology at the time of submitting it. Then it won't show up in storm UI.
Check following:
Supervisor is running
Nimbus is running
zookeeper is running
you are giving topology some name
Thanks

How to know current running topologies from storm command line client?

Is there any way to display all the current running Storm topologies from storm command line client?
Storm documentation doesn't say anything about this.
http://storm.apache.org/documentation/Command-line-client.html
You can run
$STORM_HOME/bin/storm list
storm provides a web based UI for monitoring such informations.
However you can start writing your own Thrift client to connect to the broker and get various matrix based on your need. If you are from Java background or similar then it should be easy to write and execute from the prompt.

Resources