Storm运行依赖于如下软件
- ZeroMQ
- JzMQ
- Zookeeper
- Python
- gcc编译环境
本文在Centos7上对Storm进行伪分布式安装,首先安装依赖的软件
安装Python和gcc
Centos7已经默认安装Python,在终端可以直接使用python命令查看版本
Centos7已经默认安装gcc,可终端可以使用gcc命令查看版本
安装Zookeeper3.4.6
1. 下载zookeeper3.4.6,http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
2. tar xzvf zookeeper-3.4.6.tar.gz
3. sudo vim /etc/profile
export ZOOKEEPER_HOME=/home/hadoop/software/zookeeper-3.4.6 export $ZOOKEEPER_HOME:$PATH
4. cp /home/hadoop/software/zookeeper-3.4.6/conf/zoo_sample.cfg /home/hadoop/software/zookeeper-3.4.6/conf/zoo.cfg
5. 编辑zoo.cfg,
data_dir=/home/hadoop/software/zookeeper-3.4.6/data
安装ZeroMQ4.0.5
wget http://download.zeromq.org/zeromq-4.0.5.tar.gz tar -zvxf zeromq-4.0.5.tar.gz cd zeromq-4.0.5/ ./configure sudo make sudo make install
安装JzMQ
sudo yum install git git clone git://github.com/nathanmarz/jzmq.git cd jzmq/ ##没有touch这一步有可能在make的时候报如下错:*** No rule to make target `org/zeromq/ZMQException.class, needed by `all'. Stop. touch src/classdist_noinst.stamp sudo make sudo make install ##如果在make install的时候报找不到org/zeromq/ZMQ$Context.class则需要编译java类 cd src/org/zeromq javac *.java ###重新make和install sudo make sudo make install
安装Storm
wget http://mirror.bit.edu.cn/apache/storm/apache-storm-0.9.3/apache-storm-0.9.3.tar.gz tar xzvf apache-storm-0.9.3.tar.gz sudo vim /etc/profile export STORM_HOME=/home/hadoop/software/apache-storm-0.9.3 export PATH=$STORM_HOME/bin source /etc/profile
配置Storm
vim /home/hadoop/software/apache-storm-0.9.3/conf/storm.yaml
在对文件进行配置时,要注意格式,高亮显示
1. 配置Zookeeper的服务器地址
storm.zookeeper.servers: - "127.0.0.1"
2. 配置nimbus的地址
nimbus.host: "127.0.0.1"
3. 配置storm.local.dir
storm.local.dir: /home/hadoop/software/apache-storm-0.9.3/stormlocaldir
4. 配置Supervisor slots ports
supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
启动Storm
1. 启动Zookeeper
$ZOOKEEPER_HOME/bin/zkServer.sh start
2. 启动Storm nimbus
bin/storm nimbus
3. 启动Storm supervisor
bin/storm supervisor
Storm启动后,在$STORM_HOME/logs目录下会有生成两个日志文件,nimbus.log和supervisor.log,日志的最后一行分别显示Starting Storm Nimbus...和Staring Storm Supervisor,在启动中似乎意味着Storm并未启动,实际上Storm已经启动。可以通过jps查看可以看到两个进程
61308 supervisor 61124 nimbus
运行Storm实例
1. 在Storm的安装目录中自带了一系列的Storm例子代码和打包好的jar包,其中包括最著名的WordCount实例,将它cp到bin目录下,
cp /home/hadoop/software/apache-storm-0.9.3/examples/storm-starter/storm-starter-topologies-0.9.3.jar /home/hadoop/software/apache-storm-0.9.3/bin/storm-starter-topologies-0.9.3.jar
2. 使用如下命令启动storm版本的WordCount实例
./storm jar storm-starter-topologies-0.9.3.jar storm.starter.WordCountTopology WordCountTopology
3. 程序开始执行后,在logs目录下产生了三个日志文件
worker-6701.log
worker-6702.log
worker-6703.log
4. 使用tail -f 观察它们的输出,如下是输出片段,
查看Storm任务运行情况
1. 使用如下命令查看当前正在运行的Topology
./storm list
结果如下:
Topology_name Status Num_tasks Num_workers Uptime_secs ------------------------------------------------------------------- WordCountTopology ACTIVE 28 3 431
2. 强杀一个正在执行的Topology
./storm kill WordCountTopology
执行结果:
Topology_name Status Num_tasks Num_workers Uptime_secs ------------------------------------------------------------------- WordCountTopology KILLED 28 3 527
Storm命令参数集合
Commands: activate classpath deactivate dev-zookeeper drpc help jar kill list localconfvalue logviewer monitor nimbus rebalance remoteconfvalue repl shell supervisor ui version
Storm UI
使用./storm ui启动UI进行后,可以访问http://localhost:8080来查看Storm的运行状态,部分截图如下图所示:
参考:http://shiyanjun.cn/archives/241.html