我主要是参考这篇http://www.linuxidc.com/Linux/2013-05/84306.htm 但是因为装的Linux系统不同,所以也遇到了不同的问题。
要使用storm首先要安装以下工具:
python、zookeeper、zeromq、jzmq、storm
第一步,安装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
make
make install
vi /etc/ld.so.conf
追加/usr/local/lib/
sudo ldconfig
第二步,安装zookeeper
wget http://labs.mop.com/apache-mirror/zookeeper/zookeeper-3.3.5/zookeeper-3.3.5.tar.gz
tar -zxvf zookeeper-3.3.5.tar.gz
cp -R zookeeper-3.3.5 /usr/local/
ln -s /usr/local/zookeeper-3.3.5/ /usr/local/zookeeper
vim /etc/profile (设置ZOOKEEPER_HOME和ZOOKEEPER_HOME/bin)
export ZOOKEEPER_HOME="/path/to/zookeeper"
export PATH=$PATH:$ZOOKEEPER_HOME/bin (export是要在profile里加上的,然后保存退出:wq 然后用source /etc/profile使环境变量生效)
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以及jzmq (这一步可以与zookeeper那一步倒换,很多书上是先安装这俩再安装zookeeper)
jzmq的安装貌似是依赖zeromq的,所以应该先装zeromq,再装jzmq。
1)安装zeromq:
wget http://download.zeromq.org/zeromq-2.2.0.tar.gz
tar zxf zeromq-2.2.0.tar.gz
cd zeromq-2.2.0
./configure
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
2)安装jzmq
yum install git
git clone git://github.com/nathanmarz/jzmq.git
cd jzmq
./autogen.sh
./configure
make
make install
然后,jzmq就装好了.
注意:在./autogen.sh这步如果报错:autogen.sh:error:could not find libtool is required to run autogen.sh,这是因为缺少了libtool,可以用#yum install libtool*来解决
第四步,安装Storm
wget http://cloud.github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
unzip storm-0.8.1.zip
mv storm-0.8.1 /usr/local/
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就安装完毕了。
第五步,测试一下本地模式的WordCount
下载storm-starter 编译,并导入eclipse 工程:
(http://www.linuxidc.com/Linux/2013-05/84309.htm)
1. 下载strom starter的代码 git clone https://github.com/nathanmarz/storm-starter.git (我运行的时候出错了,
fatal: Unable to find remote helper for 'https',原因是git没装好。按下面的步骤重装git
Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel (<--cenos系统,第一句换成这个)
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev )
- $ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev build-essential
- $ wget https://git-core.googlecode.com/files/git-1.8.1.2.tar.gz
- $ tar -zxf git-1.8.1.2.tar.gz
- $ cd git-1.8.1.2
- $ make prefix=/usr/local all
- $ sudo make prefix=/usr/local install
)
3. 复制 storm-starter目录下的m2_pom.xml 为pom.xml ,因为eclipse需要pom.xml
4. 使用mvn eclipse:eclipse编译成eclipse工程
5. 在Eclipse 中import 选择storm-starter 的路径,一般导入项目后,会需要设置相应的M2_查看工程是否无误,可能会需要配置M2_REPO变量,
M2_REPO配置方法:工程上右键->Properties->Java Build Path->Libraries->AddVariable->Configure Variable->New
输入Name:M2_REPO , Path:localRepository路径->ok刷新工程,代码无误了,可以进行开发了
6. 编译无误后,现在本地跑storm.starter目录下的WordCountTopology,看到如下的截屏,代表本地的local模式可以跑通过
使用eclipse的export功能导出项目的jar包,便于以后分布式的情况下,提交相应的逻辑
Strom-Starter构建失败,缺少twitter4j包 的解决办法:
( http://www.linuxidc.com/Linux/2013-05/84308.htm )
修改Storm-Starter的pom文件m2-pom.xml ,修改dependency中twitter4j-core 和 twitter4j-stream两个包的依赖版本,如下:
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>[2.2,)</version>
</dependency>
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-stream</artifactId>
<version>[2.2,)</version>
</dependency>