storm实战 A Real-life EXample

1,install zeromq

期间可能出现:configure: error: cannot link with -luuid, install uuid-dev. 因此可以先安装

sudo apt-get install uuid* sudo apt-get install libtool
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

2, install git

git-1.8.3.tar.gz
tar zxvf git-1.8.3.tar.gz
cd git-1.8.3
make && sudo make install

3,install jzmq

git clone git://github.com/nathanmarz/jzmq.git
./autogen.sh
./configure
make && sudo make install

4, install storm

4.1,download zip unzip

wget http://cloud.github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
unzip storm-0.8.1.zip
cd storm-0.8.1

4.2,配置Storm变量

vim /etc/profile
   # storm 
export STORM_HOME=/home/hadoop/bigdata/storm-0.8.1/
export PATH=$PATH:$STORM_HOME/bin
. /etc/profile

4.3,storm的配置:storm.yaml

关于这个配置文件实在的有点蛋疼,居然空格都包含在内,如果你在":"号后面没有空格那就 蛋疼了,不断折腾之后,这个勉强可以配置好了。

storm.zookeeper.servers: 
     - "127.0.0.1"
storm.zookeeper.port: 2182
nimbus.host: "127.0.0.1"
storm.local.dir: "/home/hadoop/bigdata/storm-0.8.1/data/stor_mdir"
supervisor.slots.ports:
  - 6700
  - 6701
  - 6702
  - 6703

ui.port: 10010

5,storm-starter

svn co https://github.com/nathanmarz/storm-starter/trunk storm-starter
cd storm-starter
mvn -f m2-pom.xml package
cp m2-pom.xml pom.xml

5.1,需要对pom文件的依赖做相应修改,注释掉:

<!--
<repository> <id>twitter4j</id> <url>http://twitter4j.org/maven2</url> </repository> -->

并将

<dependency>
    <groupId>org.twitter4j</groupId>
    <artifactId>twitter4j-core</artifactId>
    <version>2.2.6-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.twitter4j</groupId>
    <artifactId>twitter4j-stream</artifactId>
    <version>2.2.6-SNAPSHOT</version>
</dependency>

改为

<dependency>
    <groupId>org.twitter4j</groupId>
    <artifactId>twitter4j-core</artifactId>
    <version>2.2.6</version>
</dependency>
<dependency>
    <groupId>org.twitter4j</groupId>
    <artifactId>twitter4j-stream</artifactId>
    <version>2.2.6</version>
</dependency>

也可以参考参考网上的,改为

<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>

原因是:作者使用的是twitter的库,注释掉后不存在2.2.6.snapshot版本的相应依赖。

5.2,编译storm-starter:

mvn -f m2-pom.xml package

如果是生成eclipse工程:

cp m2-pom.xml pom.xml
mvn eclipse:eclipse

6,NodeJs+express环境

wget http://nodejs.org/dist/v0.10.22/node-v0.10.22-linux-x64.tar.gz
tar zxvf node-v0.10.22-linux-x64.tar.gz
cd node-v0.10.22/
export NODE_HOME=/usr/local/node-v0.10.22-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
. /etc/profile(source )
#express
npm install -g express(sudo su - 必须root??)

7,A Real-life Example install

7.1 install Redis

./redis-server ../redis.conf

7.2 打包

svn co https://github.com/storm-book/examples-ch06-real-life-app/trunk 
cd trunk/
mvn package

7.3 启动应用

java -jar target/storm-analytics-0.0.1-jar-with-dependencies.jar 
node webapp/app.js

7.4 测试功能

  • ①主页:http://localhost:3000/

  • ②产品页:http://localhost:3000/product/:id,显示了一个与特定产品相关的信息

  • ③统计信息页:http://localhost:3000/product/:id/stats,浏览该产品的用户,浏览过的其他产品的统计信息(次数)

你可能感兴趣的:(storm)