Ubuntu 12.04 中安装storm

来源:互联网 发布:淘宝ifashion代表什么 编辑:程序博客网 时间:2024/06/04 22:47

操作系统:Ubuntu 12.04 64位版本

 

一、 JDK的安装

1     下载jdk-6u13-linux-x64.bin(如果是32位则下载jdk-6u13-linux-i586.bin)

2     创建安装目录,在/usr/java下建立安装路径,并将文件考到该路径下:# mkdir /usr/java

3     给安装文件运行的权限:chmod +rwx jdk-6u13-linux-x64.bin

4     ./jdk-6u13-linux-x64.bin

      (安装过程中会提示你是否愿意遵守协议,当然输入yes)

 

二、 配置JDK

 #vi/etc/profile

在里面添加如下内容

exportJAVA_HOME=/usr/java/jdk1.6.0_13
export JAVA_BIN=/usr/java/jdk1.6.0_13/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

让/etc/profile文件修改后立即生效 ,可以使用如下命令:
 #. /etc/profile
注意: . 和 /etc/profile 有空格. 
 
重启测试
 java -version
  屏幕输出:
 java version "jdk1.6.0_02"
 Java(TM) 2 Runtime Environment, Standard Edition (build jdk1.6.0_02)
  JavaHotSpot(TM) Client VM (build jdk1.6.0_02, mixed mode)

三、 搭建Zookeeper集群

sudoapt-get install zookeeper zookeeper-bin zookeeperd

其实就这一条命令可以解决问题,不过有些文档上说还要配置,我不是太理解,可能我还是个新手

 

四、 安装Storm依赖库

1     安装ZeroMQ 2.1.7

cd/usr/local/src/

wgethttp://download.zeromq.org/zeromq-2.1.7.tar.gz

tar-xzf zeromq-2.1.7.tar.gz

cdzeromq-2.1.7

./configure

make

sudomake install

 

注意:

(1)如果提示找不到uuid,则通过以下命令安装:

sudoapt-get install uuid

(2)如果提示没有c++编译器,则通过以下命令安装:

sudoapt-get install g++

(3)如果提示没有autotool,则通过以下命令安装:

sudoapt-get install autotool

 

2     安装JZMQ

下载后编译安装JZMQ:

cd /usr/local/src/

git clone https://github.com/nathanmarz/jzmq.git

cd jzmq

./autogen.sh

./configure

make

sudo make install

注意:

(1)如果安装jzmq时遇到No ruleto make target `classdist_noinst.stamp'的make错误,则手动创建classdist_noinst.stamp空文件。

touchsrc/classdist_noinst.stamp

(2)如果安装jzmq时遇到cannotaccess org.zeromq.ZMQ的make错误,具体的make错误信息:

error:cannot access org.zeromq.ZMQ
class file for org.zeromq.ZMQ not found
javadoc: error - Class org.zeromq.ZMQ not found.

 

解决方法:手动编译,然后重新make即可通过。

cdsrc
javac -d . org/zeromq/*.java
cd ..

3     安装python2.6.6

(1). 下载Python2.6.6:

cd /usr/local/src/ wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2

(2). 编译安装Python2.6.6:

tar –jxvf Python-2.6.6.tar.bz2
cd Python-2.6.6
./configure
make
make install

(3). 测试Python2.6.6:

python -V
Python 2.6.6

 


 

五、 下载并解压Storm发布版本

下载地址:https://github.com/nathanmarz/storm/downloads

$sudo apt-get install unzip

$ cd/usr/local/src/

$ wgethttps://github.com/downloads/nathanmarz/storm/storm-0.8.1.zip

$unzip storm-0.8.1.zip

$ sudomv storm-0.8.1 /srv/

$sudo ln -s /srv/storm-0.8.1 /srv/storm

 

sudocat >> ~/.bashrc <<'EOF'

exportJAVA_HOME=/usr/java/jdk1.6.0_13

exportZOOKEEPER_HOME="/usr/lib/zookeeper"

exportSTORM_HOME=/srv/storm

exportPATH=$PATH:$PATH:$ZOOKEEPER_HOME/bin:$STORM_HOME/bin

EOF

.~/.bashrc     让文件修改后立即生效(中间有空格

修改 Storm CONF_DIR 目录位置

$sed -i 's:CONF_DIR = os.path.expanduser("~/.storm"):CONF_DIR ="/srv/storm-0.8.1/conf":' /srv/storm/bin/storm

 

六、 启动服务

启动 zookeeper 服务

$sudo service zookeeper start


启动 storm 服务

/srv/storm/bin/stormnimbus &

/srv/storm/bin/stormsupervisor &

/srv/storm/bin/stormui &

 

StormUI

http://YOURIP:8080/

 

七、 向集群提交任务

 Github里有一个例子叫做storm_starter(0.8.2版本),我们可以用它来做测试。

按照http://github.com/nathanmarz/storm-starter,执行这个程序需要用lein,我们用eclipse代替lein。打包后进行上传。

使用maven或lein解决storm-starter的包依赖问题,但是由于GFW原因,可能有些依赖包无法获取。故这里采用eclipse自导入包的方法来编译storm-starter.

1)下载twitter4j :twitter4j-2.2.6.zip、storm-starter-master.zip和commons-collections.jar

2) 追加源文件storm-start/src/jvm/storm
    使用eclipse建立javaproject。追加twitter4j、storm以及commons-collections的jar文件。
    File-> New -> Java Project ->随便取个名字-> Next ->Libraries -> add External JARs...-> 追加twitter4j、storm以及commons-collections的jar文件

     /path/to/twitter4j/lib/*.jar

     /path/to/storm/lib/*.jar

     /path/to/storm/storm-{version}.jar)

/path/to/commons-collections-3.2.1/commons-collections.jar

 

     -> Finsh

或者可以在建java 项目完成后添加twitter4j和storm的jar文件:

(还是先建项目再导入jar文件比较合理)

    项目名-> 右键->properties->java build path->Libraries -> add ExternalJARs->追加twitter4j、storm以及commons-collections的jar文件

 

    导入storm-start
    File -> Import -> General -> File System -> Next-> Browse(From directory) -> /path/to/storm-start/src/jvm-> Browse(Info floder)  -> xxx -> src -> OK -> “storm” 和 “Create top-levelfolder”前打勾 -> Finish

 

3) 追加源文件storm-start/multilang/resources(python 文件word count用)
    File -> Import -> General -> File System -> Next-> Browse(From directory) -> /path/to/storm-start/multilang-> Browse(Info floder)  -> xxx -> OK -> check “resources” and “Create top-level folder” -> Finish
2个源文件都追加好之后,eclipse左边显示如下图(一定要一样才能运行):

 

如果下面这行报错,说明没有commons-collections.jar包,下载地址:http://commons.apache.org/proper/commons-collections/download_collections.cgi

 

import org.apache.commons.collections.buffer.CircularFifoBuffer;    

最下载稳定包:commons-collections-3.2.1-bin,解压后追加commons-collections-3.2.1.jar文件就ok:

 项目名-> 右键->properties->java buildpath->Libraries -> add External JARs->commons-collections-3.2.1.jar

 

4) JAR export
    File -> Export -> JAR -> JAR file -> 取消 “.classpath” ,“.project” 和 “<.settings” ->的勾 browse -> path/to/export/name.jar -> Finish (忽视 warnings)

可能会报错说PrintSampleStream和TwitterSampleSpout这两个类找不到,将这两个类的注释取消掉即可。

 

 

八、 Storm-starter本地运行

stormjar StormApp.jar storm.starter.WordCountTopology test

在Storm里面有emits则视为成功

Enjoy!!

 


0 0
原创粉丝点击