Storm 环境配置及Storm starter运行

一、            Storm基本安装

1. 安装python

=================================

# 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 /ect/ld.so.conf

--

文件末尾追加

/usr/local/lib

--

#sudo ldconfig

============================

2. 安装zookeeper

============================

#wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz

# tar zxf zookeeper-3.3.3.tar.gz

# cp -R zookeeper-3.3.3 /usr/local/

# ln -s /usr/local/zookeeper-3.3.3/ /usr/local/zookeeper


设置 ZOOKEEPER_HOME 和$ZOOKEEPER_HOME/bin

#vi ~/.bashrc

--

追加

export ZOOKEEPER_HOME="/path/to/zookeeper"

export PATH=$PATH:$ZOOKEEPER_HOME/bin

--


用zoo_sample.cfg制作$ZOOKEEPER_HOME/conf/zoo.cfg

#cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg

制作dataLogDir和运行Dir

sudo mkdir /tmp/zookeeper

sudo mkdir /var/log/zookeeper

============================

3. 安装zeromq & jzmq

============================

1)安装zeromq

# wget http://download.zeromq.org/historic/zeromq-2.1.7.tar.gz

# tar zxf zeromq-2.1.7.tar.gz

# cd zeromq-2.1.7

# ./configure

**********************

如果报错

configure: error: in `/usr/local/download/zeromq-2.1.7':

configure: error: no acceptable C compiler found in $PATH

See `config.log' for more details

原因为没有安装c compiler

解决方法

# yum install gcc*

如果遇到Error:cannot link with -luuid, install uuid-dev

原因为缺少uuid相关package

解决方法

# yum install uuid*

# yum install e2fsprogs*

# yum install libuuid*

**********************

#make

#make install

更新LD_LIBRARY_PATH

#ldconfig

============================

2)安装jzmq

============================

#yum install git

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

**********************

如果有proxy的话执行

#git clone http://github.com/nathanmarz/jzmq.git

就能避开git的代理设置

**********************

# cd jzmq

# ./autogen.sh

**********************

如果报错

autogen.sh: error: could not find libtool. libtool is required to run autogen.sh.

缺少libtool

# yum install libtool*

**********************

# ./configure

# make

# make install

============================

4. 安装storm

============================

# wget https://github.com/downloads/nathanmarz/storm/storm-0.7.1.zip

# unzip storm- 0.7.1 zip

# cp -R storm-0.7.1 /usr/local/

# vi /.bashrc

--

追加

export STORM_HOME=/usr/local/storm-0.7.1

export PATH=$PATH:$STORM_HOME/bin

--

============================

到此为止,storm安装完毕。

二、storm-starter运行

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

1. 编译storm-starter

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

A. 使用eclipse建立java project。追加twitter4jstormjar文件。

    File-> New -> Java Project ->随便取个名字-> Next -> Libraries -> add External JARs...-> 追加twitter4jstormjar文件(/path/to/twitter4j/lib/*.jar/path/to/storm/lib/*.jar/path/to/storm/storm-{version}.jar-> Finsh

B.  导入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

1:导入时,会提示有些包不存在(commons-collections-3.2.1.jar),下载导入即可。

2:如果使用最新的storm-starter,而storm的版本是低于storm0.9.0的,会出现有些方法参数不匹配的现象,这是由于版本不统一造成的,修改源文件符合当前storm版本的方法即可

4 JAR export

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

5)执行刚才编译的文件

# 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. Storm-starter本地运行

这里我们运行Storm-starter项目的wordCount,对于该类而言,如果没有传递参数,则本地运行,传递参数,则是集群运行。这里我们首先介绍本地运行

# storm jar  <打包后的jar包名>.jar  storm.starter.WordCountTopology

3. Storm-starter集群运行

A.         配置zookeepper

配置zookeeper时,注意zoo.cfg注意下面几个参数。改好zoo.cfg文件后,记得在dataDir  = /opt/zookeeper目录下创建myid文件,从1开始,每个服务器加1就行。Storm运行起来之后,可以在zookeeper上看到很多Storm相关的数据。

# vi /usr/local/zookeeper-3.4.5/conf/zoo.cfg


dataDir=/opt/zookeeper

# the port at which the clients will

connect

clientPort=2181

server.1=172.16.0.235:4887:5887

#第一个节点地址

server.2=172.16.0.233:4887:5887 #第二个节点地址


B.         配置storm

# vi <storm安装路径>/conf/storm.yaml


storm.zookeeper.servers:

- "172.16.0.235"

- "172.16.0.233"

nimbus.host:"172.16.0.235"

storm.local.dir:"/opt/storm" ui.port: "18080"

supervisor.slots.ports:

- 6700

- 6701

- 6702

- 6703

- 6704

- 6705

# 注:根据你的cpu的能力可以多几个端口,每一个端口对应storm一个slot,可以运行storm的一个bolt


C.        启动服务

此时,就可以通过http://UI_Server:8080可以打开Storm Web UI看看Storm集群的状态。

同时,可以通过命令jps查看各进程运行状态

1882 core   对应的进程是Storm UI

341 Jps     对应的进程是Java jps

1880 nimbus 对应的进程是Storm nimbus

18450 supervisor 对应的进程是Storm supervisor

27380 worker     对应的线程是Storm main函数里面设置的 conf.setNumWorkers(15) ,所以本例中有15worker

2112 QuorumPeerMain 对应的进程是zkServer.sh

其中在nimbusnimbus core QuorumPeerMain 这三个进程必须启动,如果启动失败,需要研究一下日志中失败的原因,按照上述的顺序再启动一次。否则 会导致下一步的topology提交失败,切记。

D.        启动服务

./storm jar storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar

storm.starter.WordCountTopology wordcountTop

注: 使用面这个命令运行wordcount例子。命令是没错的,但是会提示找不到nimbus服务器,原来是由于StormCONF_DIR指定有错误,它会去.storm里面找storm.yaml这个文件,其实这个目录是不存在的。需要编辑bin/storm文件,将CONF_DIR指向正确的目录,具体方法如下:

# gedit bin/storm

添加:在CONF_DIR后面新增  CONF_DIR = STORM_DIR + "/conf"


转载参考:
http://blog.sina.com.cn/s/blog_4a1f59bf0100xn8l.html
http://blog.csdn.net/jsjwk/article/details/8140456
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值