【Storm二】Storm伪分布式安装
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