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

本地机器和远端storm集群之间的关系:远端的storm集群是被一个称作Nimbus的控制节点所管理,你的机器与Nimbus通信以提交topology的代码,执行这个topology。而Nimbus会自己主动在集群内部分发你的topology代码,
分配任务给各个机器。你的机器使用一个称为storm的client去和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服务的port号。要和Zookeeper服务的port号一致(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左边显演示样例如以下图:

                                                                                             

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhbmd6aGVianV0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

假设使用的是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下载


storm-安装的更多相关文章

  1. 【Storm一】Storm安装部署

    storm安装部署 解压storm安装包 $ tar -zxvf apache-storm-1.1.0.tar.gz -C /usr/local/src 修改解压后的apache-storm-1.1. ...

  2. Twitter Storm 安装实战

    实际上安装Twitter Storm是上周三的事情了,周三的时候安装了一个单机版的,用WordCount跑了一下,感觉还不错.周四试着在集群上安装,碰到了一些问题,一直折腾到周五,留了个尾巴(没有做测 ...

  3. Twitter Storm安装配置(Ubuntu系统)单机版

    要使用storm首先要安装以下工具:JDK.Python.zookeeper.zeromq.jzmq.storm (注:各个模块都是独立的,如果安装失败或者卡顿可以单独百度某个模块的安装,都是可以的. ...

  4. Hadoop之Storm安装

    nimbus:主节点,负责分发代码,分配任务(只能有一个)supervisor:从节点,负责执行任务(可以有多个) jdkzookeeper(192.168.1.170/171/172)建议在zook ...

  5. storm安装笔记以及提交拓扑任务

    Storm -- Distributed and fault-tolerant realtime computation 这是一个分布式的.容错的实时计算系统 把Storm依赖组件的版本贴出来供各位参 ...

  6. Redis安装,mongodb安装,hbase安装,cassandra安装,mysql安装,zookeeper安装,kafka安装,storm安装大数据软件安装部署百科全书

    伟大的程序员版权所有,转载请注明:http://www.lenggirl.com/bigdata/server-sofeware-install.html 一.安装mongodb 官网下载包mongo ...

  7. storm安装

    官方安装地址:http://storm.apache.org/releases/1.0.2/Setting-up-a-Storm-cluster.html storm集群的三个角色 Nimbus.Su ...

  8. Storm安装与实验

    接上一篇Kafka的安装与实验: http://www.cnblogs.com/charlesblc/p/6046023.html 还有再上一篇Flume的安装与实验: http://www.cnbl ...

  9. storm安装(3)storm本身的安装

    (6)下载storm包放入home文件夹中, 这里我用的版本是storm-0.8.2.zip 添加权限 chmod +x storm-0.8.2.zip 进行文件的解压 unzip storm-0.8 ...

  10. Storm安装部署

    1.从官网下载安装包,并通过Xftp5上传到机器集群上 下载apache-storm-1.2.1.tar.gz 版本,并通过Xftp5上传到hadoop机器集群的第一个节点node1上的/opt/up ...

随机推荐

  1. ClientProtocolException

    用httpclient 去訪问页面是会出现org.apache.http.client.ClientProtocolException 我这里出现的原因是在http请求时.请求头缺少user-agen ...

  2. iOS开发一行代码系列:一行搞定输入框

    近期总结了下开发过程中经常使用的功能,发现有时候我在做反复性的劳动.于是决定把经常使用的功能抽出来,方便下次使用. 我的想法是:用最少的代码来解决这个问题.于是写了一些经常使用的工具类,名字就叫一行代 ...

  3. iOS CoreImage图片处理动态渲染(滤镜)

    // //  ViewController.m //  CoreImageOfDong // //  Created by Dong on 15/6/30. //  Copyright (c) 201 ...

  4. code::blocks配置编译cuda并进行第一个demo的測试

    我们先新建个NVCC的编译器. 使用复制GCC编译器的方式进行新建,然后我们进行下面的路径配置 先来看看链接库,将我们常常使用的cuda库链接进来. 然后链接cuda的头文件: 接着配置调试工具以及编 ...

  5. 在iOS中求数组元素中最大数与最小数

    之前求数组中某个数中的最大值与最小值.还真一个个比較,后来看到这种方法后,我就醉了 NSArray *testArray = [NSArray arrayWithObjects:@"-2.0 ...

  6. Codeforces Round #282 (Div. 1)B. Obsessive String KMP+DP

    B. Obsessive String   Hamed has recently found a string t and suddenly became quite fond of it. He s ...

  7. 【SDOI 2016】 排列计数

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4517 [算法] 有m个数在原来的位置上,说明有(n-m)个数不再原来的位置上 那么, ...

  8. 2017-3-3 leetcod 1 35 448

    ACM退役了,接下来是考研的准备,刷刷leetcode保证不会生手,也算是调剂生活,初步计划是每天三题吧,希望可以坚持下去. 打算按照专题来做,先是Array....本来以为特别水,结果.... == ...

  9. C# Keywords - as

    记录一下在日常开发过程中遇到的一些C# 基础编程的知识! 希望以后能用的着.知识是在平常的开发过程中去学到的.只有用到了,你才能深入的理解它,并用好它. 本资料来源于:MSND 下面是一些相关的cod ...

  10. shell编程01—shell基础

    01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersy ...