storm安装
一、需要安装的工具
python、zookeeper、storm(如果是storm0.9以前的版本,则需要安装zeromq、jzmq)
二、开始安装
第一步:安装Python2.7.2
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar zxvf Python-2.7.2.tgz
cd Python-2.7.2
./configure --prefix=/usr/local/python2.7
make
make install
vi /etc/ld.so.conf
追加/usr/local/lib/
sudo ldconfig
第二步:安装zookeeper
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar -zxvf zookeeper-3.3.5.tar.gz
cp -R zookeeper-3.3.5 /usr/local/zookeeper
vim /etc/profile (设置ZOOKEEPER_HOME和ZOOKEEPER_HOME/bin)
export ZOOKEEPER_HOME="/usr/local/zookeeper"
export PATH=$PATH:$ZOOKEEPER_HOME/bin
cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg (用zoo_sample.cfg制作$ZOOKEEPER_HOME/conf/zoo.cfg)
mkdir /tmp/zookeeper
mkdir /var/log/zookeeper
zookeeper的单机安装已经完成了。
第三步:安装zeromq
wget http://download.zeromq.org/zeromq-4.1.0-rc1.tar.gz
tar zxf zeromq-2.2.0.tar.gz
cd zeromq-2.2.0
./configure //因为jzmq的安装时依赖于zeromq的,所以./configure的时候不能指定zeromq的安装目录,如果指定了,则jzmq的安装会出错(即不能指定--prefix=...)。
make
make install
sudo ldconfig (更新LD_LIBRARY_PATH)
zeromq安装完成。 注意:如有有依赖报错,需要安装: jzmq dependencies 依赖包 sudo yum install uuid* sudo yum install libtool sudo yum install libuuid sudo yum install libuuid-devel
第四步:安装jzmq
jzmq的安装是依赖zeromq的,所以应该先装zeromq,再装jzmq
git clone git://github.com/nathanmarz/jzmq.git(需先安装git,才能git clone文件)
cd jzmq
./autogen.sh
./configure
make
make install
报错修复:
- 1、在./autogen.sh这步如果报错:autogen.sh:error:could not find libtool is required to run autogen.sh,这是因为缺少了libtool。解决方法:yum install libtool
- 2、make[1]: *** 没有规则可以创建“org/zeromq/ZMQ.class”需要的目标“classdist_noinst.stamp”。 停止 修正方法,创建classdist_noinst.stamp文件。解决方法:touch src/classdist_noinst.stamp
- 3、无法访问 org.zeromq.ZMQ 。解决方法:进入src目录,手动编译相关java代码:javac -d . org/zeromq/*.java 4、在./configure的时候报,not include “zmf.c.。解决方案:看自己的zeromq是否安装在默认目录了,如果没有,重新安装
第五步,安装Storm
wget http://mirrors.cnnic.cn/apache/storm/apache-storm-0.9.4/apache-storm-0.9.4.tar.gz
unzip apache-storm-0.9.4.zip
mv storm-0.8.1 /usr/local/storm
ln -s /usr/local/storm-0.8.1/ /usr/local/storm
vim /etc/profile
export STORM_HOME=/usr/local/storm-0.8.1
export PATH=$PATH:$STORM_HOME/bin
到此为止单机版的Storm就安装完毕了。
三、测试运行
一、运行storm的官方demo
- a:在eclipse里面创建一个java项目
- b:将storm安装路径的lib中的jar包导入夏目
- c:将storm安装路径中的/examples/storm-starter/src/jvm 里面的storm文件夹直接拷贝到java项目的src路径下
- d:看是否有报错,如果有报错,解决一下报错(如果jdk版本是1.8的,则会报一些错误,主要是@override)
- f:运行包storm.starter中的topology例子
二、配置及启动zookeeper
配置内容:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/username/zookeeper-3.4.5/tmp/zookeeper-data
dataLogDir=/home/username/zookeeper-3.4.5/tmp/logs
# the port at which the clients will connect
clientPort=2181
单机版直接启动: /usr/local/zookeeper/bin/zkServer.sh start
三、配置storm
文件在/usr/local/storm/conf/storm.yaml 配置内容如下:
storm.zookeeper.servers:
- 127.0.0.1
storm.zookeeper.port: 2181
nimbus.host: "127.0.0.1"
ui.port: 9098
storm.local.dir: "/tmp/storm"
注意:在配置时一定注意在每一项的开始时要加空格,冒号后也必须要加空格,否则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修改成多个)。
四、执行
# bin/storm nimbus(启动主节点)
# bin/storm supervisor(启动从节点)
执行命令:# storm jar StormStarter.jar storm.starter.WordCountTopology test //此命令的作用就是用storm将jar发送给storm去执行,后面的test是定义的toplogy名称。
# bin/storm ui (启动ui,可以通过 ip:8080/ 查看运行i情况)
# bin/storm logviewer 启动Log Viewer进程