Also available as:

Chapter 3. Upgrade Storm

Configure and Start Apache Storm


The su commands in this section use "zookeeper" to represent the ZooKeeper Service user. If you are using another name for your ZooKeeper Service user, you need to substitute your ZooKeeper Service user name for "zookeeper" in each of the su commands.

Apache Storm is fairly independent of changes to the HDP cluster:

  1. Deactivate all running topologies.

  2. Delete all states under zookeeper:

    /usr/hdf/current/zookeeper-client/bin/zkCli.sh (optionally in secure environment specify -server zk.server:port)
  3. rmr /storm

  4. Delete all states under the storm-local directory:

    rm -rf <value of stormlocal.dir>

  5. Stop Storm Services on the storm node.

  6. Update the following configs in storm.yaml:

    • storm.thrift.transport=org.apache.storm.security.auth.SimpleTransportPlugin

    • storm.messaging.transport=org.apache.storm.messaging.netty.Context

    • nimbus.topology=org.apache.storm.nimbus.DefaultTopologyValidator

    • topology.spout.wait.strategy=org.apache.storm.spout.SleepSpoutWaitStrategy

    • topology.kryo.factory=org.apache.storm.serialization.DefaultKryoFactory

    • topology.tuple.serializer=org.apache.storm.serialization.types.ListDelegateSerializer

    • nimbus.authorizer=org.apache.storm.security.suth.authorizer.SimpleACLAuthorizer (applicable only in a secure cluster)

    • drpc.authorizer=org.apache.storm.security.auth.authorizer.DRPCSimpleACLAuthorizer (applicable only in a secure cluster)

    • ui.filter=org.apache.storm.secuity.auth.KerberosPrincipalToLocal (applicable only in a secure cluster)

  7. Stop ZooKeeper Services on the storm node.

    su -zookeeper -c "export ZOOCFGDIR=/etc/zookeeper/conf ; export ZOOCFG=zoo.cfg ;source /etc/zookeeper/conf/zookeeper-env.sh ; /usr/lib/zookeeper/bin/zkServer.sh stop"
  8. Remove Storm and zookeeper from the storm node and install the HDP 2.6.0 version:

    • For RHEL/CentOS/Oracle Linux:

      yum erase storm

      yum erase zookeeper

      yum install storm

      yum install zookeeper

    • For SLES:

      zypper rm storm

      zypper rm zookeeper

      zypper install storm

      zypper install zookeeper

    • For Ubuntu/Debian:

      apt-get remove storm --purge

      apt-get remove zookeeper --purge

      apt-get install storm

      apt-get install zookeeper

  9. Replace your configuration after upgrading. Copy /etc/storm/conf from the template to the conf directory .

  10. Replace your ZooKeeper configuration after upgrading. Replace the ZooKeeper template configuration in /etc/zookeeper/conf.

  11. Ensure ZooKeeper is running. On the storm node, run the following command:

    su - zookeeper -c "source /etc/zookeeper/conf/zookeeper-env.sh; export ZOOCFGDIR=/etc/zookeeper/conf; /usr/hdf/current/zookeeper-server/bin/zkServer.sh start >> $ZOO_LOG_DIR/zoo.out\"


    • $ZOO_LOG_DIR is the directory where ZooKeeper server logs are stored. For example, /var/log/zookeeper.

  12. Start nimbus, then supervisor/ui/drpc/logviewer:

    /usr/hdf/current/storm-nimbus/bin/storm nimbus.

  13. Start Storm, using a process controller, such as supervisor:

    su - storm /usr/hdf/current/storm-supervisor/bin/storm supervisor

    You can use the same command syntax to start Storm using nimbus/ui and logviewer.

    su - storm /usr/hdf/current/storm-supervisor/bin/storm nimbus
    su - storm /usr/hdf/current/storm-supervisor/bin/storm ui
    su - storm /usr/hdf/current/storm-supervisor/bin/storm logviewer
    su - storm /usr/hdf/current/storm-supervisor/bin/storm drpc