Search code examples
javaupgradeapache-zookeeperapache-storm

Storm apache upgrade (1.0.0 to 2.0.0)


I use the Storm Apache in 1.0.0 version (java client - storm-core) and zookeeper in version 3.4.8. I check the version 2.0.0 is "significant improvements in terms of performance, new features, and integration with external systems". What is the steps needed to this upgrade? Thanks all


Solution

  • As far as I know it's pretty much the same procedure as any other Storm upgrade:

    • Stop the Storm services (e.g. Nimbus, Supervisors) on the machine you want to upgrade.
    • Download and extract the new Storm release on the machine. Make any changes to storm.yaml that are appropriate to your environment (e.g. set nimbus.seeds)
    • Restart the Storm services using the new code
    • Check that everything appears to work in Storm UI, and that the new machine has joined the cluster
    • Repeat for the next machine in your cluster

    You also want to update your topology jars. Point your dependency management at Storm 2.0.0 jars instead of 1.0.0. Most likely your topology will compile, if not you can probably find deprecation notices in the Storm 1.2.3 javadoc for any methods you might be using that are removed. These notices will likely also tell you what to do instead.

    Finally instead of having a dependency on storm-core, you now want to depend on storm-client. The scope should be provided, same as in 1.0.0.

    If I were you I would try this out in a test environment first, so you can catch any surprises before you try upgrading your production environment. You should also consider upgrading to 1.2.3 before you upgrade to 2.0.0, as that will let you see any deprecation notices in your code, and is likely to let you make any necessary changes to your code more gradually.