1. 解压:
tar -xf Downloads/apache-storm-0.9.6.tar.gz -C ./
2. 创建 data 路径
cd apache-storm-0.9.6/
mkdir data
3. 配置环境变量
vim ~/.bash_profile
export STORM_HOME=/home/zkpk/storm-0.9.7export PATH=$PATH:$STORM_HOME/bin
4. 配置 storm.yaml
vi conf/storm.yaml
storm.zookeeper.servers:
- "hss01"
- "hss02"
nimbus.host: "hsm01"
storm.local.dir: "/home/zkpk/storm-0.9.7/data"
5. 复制Storm到其他节点
scp -r apache-storm-0.9.6 zkpk@slave1:/home/zkpk/
scp -r apache-storm-0.9.6 zkpk@slave2:/home/zkpk/
scp ~/.bash_profile zkpk@slave1:/home/zkpk/
scp ~/.bash_profile zkpk@slave2:/home/zkpk/
6. 制作启动与关闭脚本
vim conf/slaves
slave1
slave2
vim start-storm.sh
#!/usr/bin/env bash
# Start all storm daemons
# Run this on master node
# Starts a worker on each node specified in conf/slaves
if [ -z "${STORM_HOME}" ]; then
export STORM_HOME="$(cd "`dirname "$0"`"/..; pwd)"
fi
SLAVE_FILE=${STORM_HOME}/conf/slaves
SLAVE_NAMES=$(cat "$SLAVE_FILE" | sed 's/#.*$//;/^$/d')
"${STORM_HOME}/bin"/storm nimbus > /dev/null 2>&1 & #Master节点要启动nimbus
echo start nimbus [ done ]
sleep 1
"${STORM_HOME}/bin"/storm ui > /dev/null 2>&1 & #Master节点要启动UI
echo start ui [ done ]
sleep 1
for slave in $SLAVE_NAMES ;
do
ssh -T $slave <<EOF
source ~/.bash_profile
cd \$STORM_HOME
python bin/storm supervisor >/dev/null 2>&1 & #Slave节点要启动 supervisor
EOF
echo start $slave supervisor [ done ]
sleep 1
done
echo start storm [ done ]
vim stop-storm.sh
#!/usr/bin/env bash
# Stop all storm daemons
# Run this on master node
# Stops a worker on each node specified in conf/slaves
if [ -z "${STORM_HOME}" ]; then
export STORM_HOME="$(cd "`dirname "$0"`"/..; pwd)"
fi
kill `ps aux | egrep '(daemon\.nimbus)|(storm\.ui\.core)' |fgrep -v egrep | awk '{print $2}'` # kill master上的nimbus和ui
echo stop nimbus [ done ]
sleep 1
SLAVE_FILE=${STORM_HOME}/conf/slaves
SLAVE_NAMES=$(cat "$SLAVE_FILE" | sed 's/#.*$//;/^$/d')
for slave in $SLAVE_NAMES ;
do
ssh $slave '/bin/kill `ps -ef | grep storm | grep -v grep | awk '\'{print \$2}\''`' # kill slave上的supervisor
echo stop $slave supervisor [ done ]
sleep 1
done
echo stop storm [ done ]