NOTE: Running under supervision is only supported for Nimbus and Supervisor.
Step 1 - Stop all Storm components
Use ambari ui Dashboard -> Storm -> Service Actions -> Stop and wait until they it gets stopped.
Step 2 - Stop Ambari Server
ambari-server stop
Step 3 - Change Supervisor and Nimbus scripts for ambari
On Ambari server host run:
sed -ir "s/scripts\/supervisor.py/scripts\/supervisor_prod.py/g" /var/lib/ambari-server/resources/stacks/HDP/2.1/services/STORM/metainfo.xml sed -ir "s/scripts\/nimbus.py/scripts\/nimbus_prod.py/g" /var/lib/ambari-server/resources/stacks/HDP/2.1/services/STORM/metainfo.xml
Step 4 - Install Supervisord
Install epel repository
yum install epel-release -y
Install supervisor package for supervisord
yum install supervisor -y
Enable supervisord on autostart
chkconfig supervisord on
Change supervisord configuration file permissions
chmod 600 /etc/supervisord.conf
Step 5 - Configure supervisord to supervise Nimbus and Supervisors
Append the following to /etc/supervisord.conf
[program:storm-nimbus] command=env PATH=$PATH:/usr/jdk64/jdk1.7.0_45/bin/ JAVA_HOME=/usr/jdk64/jdk1.7.0_45 /usr/lib/storm/bin/storm nimbus user=storm autostart=true autorestart=true startsecs=10 startretries=999 log_stdout=true log_stderr=true logfile=/var/log/storm/nimbus.out logfile_maxbytes=20MB logfile_backups=10 [program:storm-supervisor] command=env PATH=$PATH:/usr/jdk64/jdk1.7.0_45/bin/ JAVA_HOME=/usr/jdk64/jdk1.7.0_45 /usr/lib/storm/bin/storm supervisor user=storm autostart=true autorestart=true startsecs=10 startretries=999 log_stdout=true log_stderr=true logfile=/var/log/storm/supervisor.out logfile_maxbytes=20MB logfile_backups=10
NOTE: Change /usr/jdk64/jdk1.7.0_45 accordingly to location of the jdk for Ambari
Step 6 - Start ambari-server
ambari-server start
Step 7 - Start all Storm components
Use ambari ui Dashboard -> Storm -> Service Actions -> Start and wait until they it gets stopped.