| 2014年3月30日
storm的官方安装说明:https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster 本文主要介绍storm的单机版的安装测试,也是学习阶段,还没有机会搭建集群。
1.storm安装软件包列表:
python、zookeeper、zeromq、jzmq、storm
sudo apt-get install autoconf automake libtool
sudo apt-get install build-essential uuid uuid-dev libtool git autoconf openjdk-6-jdk
python保证2.7以上版本即可。
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64/
2.Zookeeper下载安装:
我下载的是zookeeper-3.4.6.tar.gz,解压之后直接配置使用
vim ~/.bashrc
export ZOOKEEPER_HOME=/data1/tools/zookeeper"
export PATH=$PATH:$ZOOKEEPER_HOME/bin
cp $ZOOKEEPER_HOM/conf/zoo_sample.cfg $ZOOKEEPER_HOM/conf/zoo.cfg (用zoo_sample.cfg制作$ZOOKEEPER_HOME/conf/zoo.cfg)
mkdir /tmp/zookeeper
mkdir /var/log/zookeeper
zookeepe的单机安装已经完成了。
3.storm依赖软件安装:
来安装必要依赖软件。主要是zeromq和jzmp。
先安装zeromq:
一般linux系统只要运行这个install_zmq.sh脚本就可以完成安装,但是在我的debian下这个脚本运行有问题,也没有去细看为什么,所以后面的安装就全是手动安装了
wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
tar -xzf zeromq-2.1.7.tar.gz
cd zeromq-2.1.7
./configure
make
sudo make install
安装jzmq:
git clone https://github.com/nathanmarz/jzmq.git
cd jzmq
cd src
在src目录需要执行下面两行脚本,否则无法编译通过。
touch classdist_noinst.stamp
CLASSPATH=.:./.:$CLASSPATH javac -d . org/zeromq/ZMQ.java org/zeromq/ZMQException.java org/zeromq/ZMQQueue.java org/zeromq/ZMQForwarder.java org/zeromq/ZMQStreamer.java
然后返回上层目录执行编译安装即可。
cd ..
./autogen.sh
If you get this error "autogen.sh: error: could not find pkg-config.pkg-config is required to run autogen.sh", then install pkg-config. In Ubuntu sudo apt-get install pkg-config and again run the above command.
./configure
make
sudo make install
4.storm安装与启动
4.1storm的安装是最为简单的,直接下载解压,配置环境变量即可。
http://storm.incubator.apache.org/downloads.html 可以在这里下载最新的storm,本文使用了0.8.1的版本。
wget http://cloud.github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
unzip storm-0.8.1.zip
ln -s storm-0.8.1 storm
vim ~/.bashrc
export STORM_HOME=/data1/tools/storm
export PATH=$PATH:$STORM_HOME/bin
到此为止单机版的Storm就安装完毕了。
4.1启动zookeeper:
zkServer.sh 单机版直接启动,不用修改什么配置,如集群就需要修改zoo.cfg。
helight:storm-0.8.1$ zkServer.sh
JMX enabled by default
Using config: /data1/tools/zookeeper/bin/../conf/zoo.cfg
Usage: /data1/tools/zookeeper/bin/zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
helight:storm-0.8.1$ zkServer.sh start
JMX enabled by default
Using config: /data1/tools/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
helight:storm-0.8.1$ ps aux|grep zoo
helight 28088 4.7 0.7 1339964 30576 pts/2 Sl 20:12 0:00 /usr/lib/jvm/java-6-openjdk-amd64//bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /data1/tools/zookeeper/bin/../build/classes:/data1/tools/zookeeper/bin/../build/lib/*.jar:/data1/tools/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/data1/tools/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/data1/tools/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/data1/tools/zookeeper/bin/../lib/log4j-1.2.16.jar:/data1/tools/zookeeper/bin/../lib/jline-0.9.94.jar:/data1/tools/zookeeper/bin/../zookeeper-3.4.6.jar:/data1/tools/zookeeper/bin/../src/java/lib/*.jar:/data1/tools/zookeeper/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /data1/tools/zookeeper/bin/../conf/zoo.cfg
helight 28114 0.0 0.0 7832 888 pts/2 S+ 20:12 0:00 grep --color=auto zoo
4.3配置启动storm:
配置文件是storm/conf/storm.yaml
内容:
storm.zookeeper.servers:
- 127.0.0.1
storm.zookeeper.port: 2181
nimbus.host: "127.0.0.1"
storm.local.dir: "/tmp/storm"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
在配置时一定注意在每一项的开始时要加空格,冒号后也必须要加空格,否则storm就不认识这个配置文件了。 说明一下:storm.local.dir表示storm需要用到的本地目录。nimbus.host表示那一台机器是master机器,即nimbus。storm.zookeeper.servers表示哪几台机器是zookeeper服务器。storm.zookeeper.port表示zookeeper的端口号,这里一定要与zookeeper配置的端口号一致,否则会出现通信错误,切记切记。当然你也可以配superevisor.slot.port,supervisor.slots.ports表示supervisor节点的槽数,就是最多能跑几个worker进程(每个sprout或bolt默认只启动一个worker,但是可以通过conf修改成多个)。 执行:
helight:tools$ storm nimbus &(启动主节点)
helight:tools$ storm supervisor&(启动从节点)
启动web监控服务,可以通过浏览器很方便的看运行情况,
关注「黑光技术」,关注大数据+微服务