Storm的依赖软件比较多,需要装Python、zookeeper、zeromq以及jzmq,然后才是storm的安装。
1.1 安装Python2.7.2
# 下载python,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
# make
# make install
# vi /etc/ld.so.conf
追加/usr/local/lib/
# sudo ldconfig
1.2 安装java
#下载java,下载版本1.6.0_32
#cp -r /path/to/java.1.6.0_32 /usr/share/
#在~/.bashrc中追加:
#export JAVA_HOME="/usr/share/java"
#export PATH=$PATH:$JAVA_HOME/bin
1.3 安装Zookeeper
#下载Zookeeper http://labs.renren.com/apache-mirror/zookeeper/stable/zookeeper-3.3.5.tar.gz
#tar zxf zookeeper-3.4.4.tar.gz
#在/etc/profile或者~/.bashrc追加:
#export ZOOKEEPER_HOME=path/to/zookeeper.3.4.4
#export PATH=$PATH:$ZOOKEEPER/bin
# cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg (用zoo_sample.cfg制作$ZOOKEEPER_HOME/conf/zoo.cfg)
1.4 安装ZeroMQ
#下载zeromq, http://download.zeromq.org/zeromq-2.1.7.tar.gz
# ./configure
# make
#sudo make install
# sudo ldconfig
这里要说一下在./configure中可能会遇到的问题:
首先我遇到了:configure:error:in '/usr/local/download/zeromq-2.1.7':
congifure:error:no acceptable C compiler found in $PATH
See 'config.log' for more details
这是因为没有安装C编译器。
解决方法是:# yum install gcc*
之后遇到的问题是:Error:cannot link with -luuid, install uuid-dev
这是因为没有安装uuid相关的package。
解决方法是:# yum install uuid*
# yum install e2fsprogs*
# yum install libuuid*
1.5 安装jzmq
# 下载jzmq-master.zip,https://github.com/zeromq/jzmq
unzip jzmq-master.zip
# cd jzmq-master
# ./autogen.sh
# ./configure
# make
# make install
1.6 安装配置Storm
wget https://github.com/nathanmarz/storm/downloads/storm-0.8.2.zip
# unzip storm-0.8.2.zip
# cp -R storm-0.8.2 /usr/local/
vi ~/.bashrc
追加export STORM_HOME=/usr/local/storm-0.8.2
export PATH=$PATH:$STORM_HOME/bin
到此为止单机版的Storm就安装完毕了。
1.7,测试一下本地模式的WordCount
Github里有一个例子叫做storm_starter,我们可以用它来做测试。
按照http://github.com/nathanmarz/storm-starter,执行这个程序需要用lein,我们用eclipse代替lein。打包后进行上传。
1) 安装twitter4j
# mkdir twitter4j
# cd twitter4j
# wget http://twitter4j.org/en/twitter4j-2.2.5.zip
# unzip twitter4j-2.2.5.zip
2) 追加源文件storm-start/src/jvm/storm
使用eclipse建立java project。追加twitter4j和storm的jar文件。
File-> New -> Java Project ->随便取个名字-> Next -> Libraries -> add External JARs...-> 追加twitter4j和storm的jar文件(/path/to/twitter4j/lib/*.jar和/path/to/storm/lib/*.jar和/path/to/storm/storm-{version}.jar)-> Finsh
导入storm-start
File -> Import -> General -> File System -> Next -> Browse(From directory) -> /path/to/storm-start/src/jvm/storm -> Browse(Info floder) -> xxx -> src -> OK -> “storm” 和 “Create top-level folder”前打勾 -> Finish
完成之后如图:
3) 追加源文件storm-start/multilang/resources×(python 文件word count用)
File -> Import -> General -> File System -> Next -> Browse(From directory) -> /path/to/storm-start/multilang/resources -> Browse(Info floder) -> xxx -> OK -> check “resources” and “Create top-level folder” -> Finish
2个源文件都追加好之后,eclipse左边显示如下图:
4) JAR export
File -> Export -> JAR -> JAR file -> 取消 “.classpath” ,“.project” 和 “<.settings” ->的勾 browse -> path/to/export/name.jar -> Finish (忽视 warnings)
. 执行刚才编译的文件。
# storm jar StormStarter.jar storm.starter.ExclamationTopology
如果出现类似下面的文字,说明运行成功!
....
11367 [Thread-25] INFO backtype.storm.daemon.task - Emitting: class storm.starter.ExclamationTopology$ExclamationBolt source: 2:3, stream: 1, id: {}, [golda!!!]
2. 安装集群版
参考资料
[1] http://www.cnblogs.com/kemaswill/archive/2012/10/24/2737833.html