storm在windows系统下安装调试
基础知识
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 :
- 下载 storm : http://storm.apache.org/downloads.html 。
- 将 apache-storm-0.10.0.tar.gz 解压到目录,D:\bin\apache-storm-0.10.0 。
- 运行 D:\bin\storm.cmd nimbus
- 运行 D:\bin\storm.cmd supervisor
- 运行 D:\bin\storm.cmd ui
- 通过http://localhost:8080可以打开Storm Web UI,看看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系统下安装调试的更多相关文章
- storm在linux系统下安装调试
安装: 安装 zookeeper : 下载 zookeeper :http://zookeeper.apache.org/releases.html#download. 将 zookeeper-3.4 ...
- Windows系统下安装zabbix客户端
简单介绍如何在windows系统下安装zabbix客户端 1. 首先下载和zabbix服务端大版本相同的windows客户端 例如我服务端安装的是zabbix-3.4.14.tar.gz ...
- Windows系统下安装MySQL 8.0.11数据库
MySQL数据库是常用的数据库之一,而且该数据库开源免费,所以很多公司在使用.本文记录如何在Windows系统下安装MySQL数据库,本次安装的版本号为8.0.11,这个版本是当前的最新版本,据宣传, ...
- tomact在windows系统下安装
一.下载 下载地址: https://tomcat.apache.org/download-90.cgi 7,8,9的版本都可以下,这里下载最新版本 注意:Binary是编译好的,可以直接使用的版本, ...
- JDK8在windows系统下安装
一.下载 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html#JDK8 目前大部分公司内部使用的还是jdk ...
- nssm常用命令(在Windows系统下安装服务的工具)
nssm install servername //创建servername服务 nssm start servername //启动服务 nssm stop servername //暂停服务 ns ...
- windows系统下安装MySQL
可以运行在本地windows版本的MySQL数据库程 序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. ...
- Tomcat Windows 系统下安装及注意事项
1 获取Tomcat 安装包 http://tomcat.apache.org/ tar.gz 文件是Linux系统下的安装版本 exe文件是 Windows系统下的安装版本 zip 文件是Wind ...
- 无光驱在32位windows系统下安装64位windows系统
位的系统. 大家都知道,32位的操作系统最多只能支持3.2G的内存,现在内存白菜价,很多人都在原有基础上购入新内存,这样最少也有4G了,为了让内存不浪费,我 们只有升级到64位操作系统.但是很多朋友又 ...
随机推荐
- cf455a(简单dp)
题意:给出一个长度为n的数列,元素为a1, a2, ...an:删除ai,ai+1,ai-1 可以得到ai积分,输出最多可以得到多少积分: 题解:开一个数组a存取数列,a[i]表示元素i的个数,所以删 ...
- redis的单实例配置+web链接redis
[root@cache01 src]# wget http://download.redis.io/redis-stable.tar.gz [root@cache01 src]# tar -xzvf ...
- 好久没弄了,来个最简的centos下的Iptables文件存照吧。
有最基本的作用.. # Generated by iptables-save v1. :: *filter :INPUT ACCEPT [:] :FORWARD ACCEPT [:] :OUTPUT ...
- hrbustoj 1073:病毒(并查集,入门题)
病毒Time Limit: 1000 MS Memory Limit: 65536 KTotal Submit: 719(185 users) Total Accepted: 247(163 user ...
- 深入理解 KVC\KVO 实现机制 — KVO
KVC和KVO都属于键值编程而且底层实现机制都是isa-swizzing,所以本来想放在一起讲的.但是篇幅有限所以就分成了两篇博文. KVC实现机制传送门 KVO概述 键值观察Key-Value-Ob ...
- WinForm窗体间传值
1.通过构造函数 特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中 int value1; string value2; public Form2 ( int val ...
- ViewPager左右滑动
布局: <android.support.v4.view.ViewPager android:id="@+id/viewpager_main" android:layout_ ...
- java实例--海盗的最优方案
package unit4; public class Pirate{ private String name; private int[] schemes; private int index; p ...
- QUnit使用笔记-5简化编写
在测试中,如果用到了大量相同的方法返回判断结果,可以将他们简化; 使用push(): push( result/*boolean,result of assert*/, actual, /*objec ...
- LightOJ1382 The Queue(树形DP)
题目大概是说给一棵树的n个结点从1到n编号,要求每个结点的编号大于其父结点,问有多少种编号方式. 想了挺久的,感觉有点眉目,最后画了下样例YY出解法: 首先求出以每个结点为根的子树大小,记为size[ ...