基础知识

Storm是一个分布式的,可靠的,容错的数据流处理系统。它会把工作任务委托给不同类型的组件,每个组件负责处理一项简单特定的任务。Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到某种存储器,要么把数据传递给其它的bolt。你可以想象一下,一个Storm集群就是在一连串的bolt之间转换spout传过来的数据。

概念解释:

  • spout: 读取原始数据为bolt提供数据。
  • bolt: 从spout或其它bolt接收数据,并处理数据,处理结果可作为其它bolt的数据源或最终结果。
  • nimbus: 主节点的守护进程,负责为工作节点分发任务。
  • topology: 拓扑结构,Storm的一个任务单元。
  • define field(s): 定义域,由spout或bolt提供,被bolt接收。

安装:

安装 zookeeper :

  • 下载 zookeeper :http://zookeeper.apache.org/releases.html#download
  • 将 zookeeper-3.4.7.tar.gz 解压到目录,D:\bin\zookeeper-3.4.7。
  • 复制文件 D:\bin\zookeeper-3.4.7\conf\zoo_sample.cfg 为同目录下的 zoo.cfg。
  • 根据需要修改zoo.cfg的内容。
  • 运行 D:\bin\zookeeper-3.4.7\bin\zkServer.cmd 。

安装 storm :

运行出错处理 :

  • 如果报Java版本问题,请安装jdk1.7,并正确设置 JAVA_HOME。
  • 设置环境变量 STORM_HOME=D:\bin\apache-storm-0.10.0 。
  • 设置环境变量 STORM_CONF_DIR=%STORM_HOME%\conf 。
  • 出现“java.net.malformedurlexception unknown protocol D”错误,请设置环境变量 STORM_LOGBACK_CONFIGURATION_FILE=file:///D:/bin/apache-storm-0.10.0/log4j2/cluster.xml
  • 如果报“Unable to delete file”错误,是storm的一个bug,0.8.2版本还没有解决,这个错误在cluster.shutdown();时候抛出。用0.10.0版本不会出现这样的问题。

Storm Web UI 界面如下:

开始一个简单的例子

  • class WordReader :从文件中读取文本内容,每读取一行 emit 给 bolts。
  • class WordNormalizer :将一行文本内容按单词切分。
  • class WordCounter :统计单词出现的次数。
  • class TopologyMain :创建拓扑结构。

源代码见文件附件:examples-ch02-getting_started.zip。

本机调试

在开发工具中,直接运行TopologyMain,即可开始体验strom

把Topology发布到集群中

需要把 LocalCluster 换成 StormSubmitter 并调用submitTopology方法

    //LocalCluster cluster = new LocalCluster();
//cluster.submitTopology("Count-Word-Topology-With-Refresh-Cache", conf,
//builder.createTopology());
StormSubmitter.submitTopology("Count-Word-Topology-With_Refresh-Cache", conf,
builder.createTopology());
//Thread.sleep(1000);
//cluster.shutdown();

接下来,把源码压缩成一个jar包,运行Storm客户端命令,把拓扑提交给集群。如果你已经使用了Maven, 你只需要在命令行进入源码目录运行:mvn package。

现在你生成了一个jar包,使用storm jar命令提交拓扑。命令格式:storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3。

对于这个例子,在拓扑工程目录下面运行:

storm jar Topologies-0.0.1-SNAPSHOT.jar countword.TopologyMain src/main/resources/words.txt

通过这些命令,你就把拓扑发布集群上了。

如果想停止或杀死它,运行:

storm kill Count-Word-Topology-With-Refresh-Cache

参考资料

storm 入门:http://ifeve.com/wp-content/uploads/2014/03/Getting-Started-With-Storm-Jonathan-Leibiusky-Gabriel-E_1276.pdf
官方文档:http://storm.apache.org/documentation.html

说明:

1.此文档中的文件夹位置请根据需要修改。
2.此文档中中使用的软件版本不一定是最新的。

storm在windows系统下安装调试的更多相关文章

  1. storm在linux系统下安装调试

    安装: 安装 zookeeper : 下载 zookeeper :http://zookeeper.apache.org/releases.html#download. 将 zookeeper-3.4 ...

  2. Windows系统下安装zabbix客户端

    简单介绍如何在windows系统下安装zabbix客户端 1. 首先下载和zabbix服务端大版本相同的windows客户端    例如我服务端安装的是zabbix-3.4.14.tar.gz     ...

  3. Windows系统下安装MySQL 8.0.11数据库

    MySQL数据库是常用的数据库之一,而且该数据库开源免费,所以很多公司在使用.本文记录如何在Windows系统下安装MySQL数据库,本次安装的版本号为8.0.11,这个版本是当前的最新版本,据宣传, ...

  4. tomact在windows系统下安装

    一.下载 下载地址: https://tomcat.apache.org/download-90.cgi 7,8,9的版本都可以下,这里下载最新版本 注意:Binary是编译好的,可以直接使用的版本, ...

  5. JDK8在windows系统下安装

    一.下载 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html#JDK8 目前大部分公司内部使用的还是jdk ...

  6. nssm常用命令(在Windows系统下安装服务的工具)

    nssm install servername //创建servername服务 nssm start servername //启动服务 nssm stop servername //暂停服务 ns ...

  7. windows系统下安装MySQL

    可以运行在本地windows版本的MySQL数据库程 序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. ...

  8. Tomcat Windows 系统下安装及注意事项

    1 获取Tomcat 安装包  http://tomcat.apache.org/ tar.gz 文件是Linux系统下的安装版本 exe文件是 Windows系统下的安装版本 zip 文件是Wind ...

  9. 无光驱在32位windows系统下安装64位windows系统

    位的系统. 大家都知道,32位的操作系统最多只能支持3.2G的内存,现在内存白菜价,很多人都在原有基础上购入新内存,这样最少也有4G了,为了让内存不浪费,我 们只有升级到64位操作系统.但是很多朋友又 ...

随机推荐

  1. opencv学习笔记(二)寻找轮廓

    opencv学习笔记(二)寻找轮廓 opencv中使用findContours函数来查找轮廓,这个函数的原型为: void findContours(InputOutputArray image, O ...

  2. hadoop中常见元素的解释

    secondarynamenode 图: secondarynamenode根据文件的的大小对namenode的编辑日志和镜像日志 进行合并. 光从字面上来理解,很容易让一些初学者先入为主的认为:Se ...

  3. 学习RSA公开密钥算法

    图为 RSA公开密钥算法的发明人,从左到右Ron Rivest, Adi Shamir, Leonard Adleman. 照片摄于1978年 (和讯财经原创) RSA加密算法是最常用的非对称加密算法 ...

  4. SRAM的读写操作

    自己写的SRAM的程序,主要在于实用性,适应工作的工程需要.使用芯片为: 芯片时序图为: 代码: /********************************Copyright********* ...

  5. gitlab安装

    [root@localhost ~]# wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rp ...

  6. CentOS 6.5 下安装 Elasticsearch 5

    安装最新的 Elasticsearch 5 需要Java 8.所有先要确定环境中是否有Java 8.如果没有则需要安装. 1. 安装Java 8 首先使用 yum list installed | g ...

  7. win + linux + android 多任务分屏

    Win10 的多任务分屏操作方法_百度经验http://jingyan.baidu.com/article/48206aeaf6ef35216ad6b336.html win+方向键 如果是想四分屏幕 ...

  8. mac os下获得root权限

    警告:对系统不了解的请慎用 操作步骤:1.打开实用工具->终端2.键入sudo passwd root 然后提示你输入当前登录用户密码,通过以后,提示你输入两遍root的密码.这样你就设置好ro ...

  9. gcc -l参数和-L参数

    转自:http://www.cnblogs.com/benio/archive/2010/10/25/1860394.html -l: -l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么 ...

  10. matlab练习程序(射线法判断点与多边形关系)

    依然是计算几何. 射线法判断点与多边形关系原理如下: 从待判断点引出一条射线,射线与多边形相交,如果交点为偶数,则点不在多边形内,如果交点为奇数,则点在多边形内. 原理虽是这样,有些细节还是要注意一下 ...