storm-安装

         storm有两种操作模式: 本地模式和远程模式。使用本地模式的时候,你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来; 用远端模式的时候你提交的topology会在一个集群的机器上执行。

        本地机器和远端storm集群之间的关系:远端的storm集群是被一个称作Nimbus的控制节点所管理,你的机器与Nimbus通信以提交topology的代码,运行这个topology,而Nimbus会自动在集群内部分发你的topology代码, 分配任务给各个机器。你的机器使用一个称为storm的客户端去和Nimbus通信。storm只有在远程模式的时候才有用; 对于用本地模式开发、测试topology来说是没什么用的。

 1. 安装Storm依赖库

        需要在Nimbus和Supervisor机器上安装Storm的依赖库,具体如下:
        ZeroMQ  3.0.0
       JMQ 
       Python 2.6
       Java JDK 1.7.0

2. 安装Zookeeper


   3. 安装storm
       需要在Nimbus和Supervisor机器上安装Storm发行版本
      自从Github不提供下载功能之后,Twitter Storm的release都被放到了Dropbox上面,由于大 家都知道的原因,不那啥一下你是访问不到了,这里有一个下载镜像:
      如果你想从你的机器提交topology给远端的storm集群, 你应该在你的本地安装一个storm发行版。安装了storm发行版之后你会得到你和远端集群通信的工具: storm。为了在本地安装storm, 从上面的链接中下载代码,并且把它解压到你机器上的一个目录。然后把bin/目录添加到环境变量PATH里面去并且使bin/storm有可执行权限。
     unzip storm-0.8.2.zip  
    export STORM_HOME=/usr/local/storm-0.8.2
    export PATH=$STORM_HOME/bin:xxx:xxx:$PATH    

修改#STROM_HOME/conf/storm.yaml文件( 没有该文件的话创建) 如下:

########### These MUST be filled in for a storm configuration
 storm.zookeeper.servers:
 - "127.0.0.1"
 # - "server2"
 #
 nimbus.host: "127.0.0.1"
 storm.local.dir: "/home/XXXX/storm/workdir"
 supervisor.slots.ports:
 - 6700
 - 6701
 - 6702
 - 6703

注:一定要注意上面的书写格式,注意空格
参数说明:
nimbus.host           Nimbus节点的主机名或IP地址
storm.local.dir        为存储相关信息比如jar,topology等的目录。
storm.zookeeper.servers    为zookeeper集群的主机名或IP地址。
storm.zookeeper.port        为Zookeeper服务的端口号,要和Zookeeper服务的端口号一致(2181是默认的)

     以上配置需要在每个节点,包括Nimbus和Supervisor上配置,且前三项是必须的,第二项如果不设置会报Connection Refused错误。

   4.  启动Storm集群

       在Nimbus节点上启动Nimbus服务:bin/storm nimbus &

       加&是为了在后台运行,否则当前的终端就不能再输入命令了

       在Nimbus节点上启动UI:  bin/storm ui &    这样就可以通过浏览器在http://nimbus-host:8080上观察整个Storm集群以及Topology的运行情况

       在Supervisor节点上启动Supervisor:bin/storm supervisor &

       这样整个Storm集群便启动了

5. 本地运行测试程序storm-starter

  
     执行这个程序需要用lein,这里介绍的方法用eclipse代替lein的作用。

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

 
    1. 安装twitter4j
      # mkdir twitter4j  
      # cd twitter4j  
      # wget http://twitter4j.org/en/twitter4j-2.2.6.zip 
      # unzip twitter4j-2.2.6.zip  

     很有可能下载不了,在网上搜一搜。
    2. 追加源文件storm-start/src/jvm/storm
       使用eclipse建立java project。追加twitter4j和storm的jar文件。
        File-> New -> Java Project ->随便取个名字-> Next -> Libraries -> add External JARs...-> 追加twitter4j和storm的jar文件(/path/to/twitter4j/lib/*.jar和/path/to/storm/lib/*.jar和/path/to/storm/storm-{version}.jar)-> Finsh
      导入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
     2个源文件都追加好之后,eclipse左边显示如下图:
                                                                                             
  

如果使用的是storm-0.8.1,下面这行代码会报错,下载0.8.2版本即可解决
import backtype.storm.task.IMetricsContext

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

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


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

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

                                                       

     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!!!]
     ....
    
    除此之外,也可以下载我提供的一个WordCount测试程序: https://github.com/ZhangzheBJUT/hadoop/tree/master






参考:
storm下载


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值