Storm学习日记

刚开始接触Storm,总体来说是一个订阅发布的功能,中间件

主要由3部分组成,spout bolt topology

1.spout 消息源

有两种实现方式,继承BaseRichSpout类和实现IRichSpout接口

主要用来接收消息,并发射给bolt

有以下几个方法:

1.1 open:初始化参数

1.2 nextTuple :重要方法!!消息接收,发射数据等

1.3 declareOutputFields:简单模式下无卵用,分段模式下据说挺重要,尚未实践,声明输出字段的方法

1.4 ack 传入一个object,主要是id,用来表示唯一的tuple,实现消息保障机制

2.bolt 处理单元

有两种实现方式,继承BaseBasicBolt类和实现IRichBolt接口

主要用来对消息进行处理后再发射

有以下几个方法:

2.1execute:(重要方法+1!!!!)接收一个tuple并执行逻辑处理,发射出去

2.2 declareOutputFields:字段声明

 

 

先说linux下storm安装,同样和zookeeper一样,先用sftp put进压缩包apache-storm-0.9.5.tar.gz,然后tar -zxvf 解压,

 解压后就有这些文件

对了,按tab键可以补全输入哈

vi apache-storm-0.9.5/conf/storm.yaml
里面基本上都是#注释掉的,加上以下代码

  storm.zookeeper.servers:
    - "ip"
#     - "server2"
#
  nimbus.host: "ip"

  storm.local.dir: "/usr/program/apache-storm-0.9.5/workdir"

  ui.port: 8080
  supervisor.slots.ports:
   - 6700
   - 6701

ip用自己的代替,还要去创建自己文件夹,storm.local.dir,自己配置路径

安装依赖库

(1)安装zeromq

  1. wget http://download.zeromq.org/zeromq-2.1.7.tar.gz 
  2. tar -xzf zeromq-2.1.7.tar.gz 
  3. cd zeromq-2.1.7 
  4. ./configure 
  5. make 
  6. sudo make install

到第四步可能会出错

1、出现错误:configure: error: Unable to find a working C++ compiler
需要安装g++编译器:

sudo yum install gcc-c++

sudo表示在root下运行,如果已经是root用户可以省掉

2、出现错误:configure: error: cannot link with -luuid, install uuid-dev.
需要安装软件包uuid-devel和libuuid-devel:

sudo yum install uuid-devel

sudo yum install libuuid-devel

然后继续第四步

(2)安装jzmq

1.sudo yum install  git

2.git clone https://github.com/nathanmarz/jzmq.git   ps:有些教程是git不是https,git也可以,由于公司网络限制,所以我是用https的

3.cd jzmq/

4../autogen.sh

5../configure

6.make

7.make install

同样会出现错误:

出现错误:autogen.sh: error: could not find libtool. libtool is required to run autogen.sh.
需要安装libtool:

sudo yum install libtool

搞定之后继续就好,不要慌哈哈

对了,以上的路径我是随便找一个文件夹放的,不是storm的目录,不要搞混了

 

然后cd apache-storm-0.9.5/bin/

开启nimbus

./storm nimbus &

&代表后台运行

开启supervisor

./storm supervisor &

开启ui

./storm ui &

然后可在浏览器输入http://nimbus.host:ui.port查看 ui状态

提交任务

./storm jar 包名 main所在类路径 任务名

./storm jar stormtest1 storm1.SimpleTopology st

 对了,用jps查看命令,先会变成config_value,然后才会变成nimbus、supervisor、ui,具体原因我不太清楚,估计是在编译lib下jar包,总之就是要等一会,等它编译完就可以访问了~~~

./storm kill st

杀死进程

同样作为菜鸟,推荐两个教程网址,真是帮了我大忙啊哈哈

1.http://shiyanjun.cn/archives/241.html

2.http://www.myexception.cn/database/2045639.html

^^

posted @ 2016-01-28 17:57  Yovela  阅读(168)  评论(0编辑  收藏  举报