Storm 使用手册
一、Storm相关术语:
- Nimbus: Storm集群主节点,负责资源的分配和任务的调度
- Supervisor:Storm集群工作节点,接受Nimbus分配的任务,管理Worker
- Worker:Supervisor下的工作进程,具体任务执行
- Task:Worker下的工作线程
- Topology:实时计算逻辑,计算拓扑,由spout和bolt组成的图状结构
- Spout:Storm编程模型中的消息源
- Bolt:Storm编程模型中的处理组件,定义execute方法进行实际的数据逻辑处理
- Stream:拓扑中的消息流,传输的对象是Tuple
- Tuple:一次消息传递的基本单元
一、Storm几个常用的操作命令:
- storm active : 激活指定任务;
- storm drpc:启动一个DRPC进程;
- storm deactivate: 暂停storm的任务;
- storm kill:通过任务名称kill一个任务;
- storm list:列出正在运行的topologies和状态;
- storm nimbus: 启动一个nimbus进程;
- storm supervisor: 启动一个supervisor进程;
- storm ui : 启动监控页面UI的后台进程;
- storm rebalance: 节点扩展后进行负载均衡;
二、Storm编程模型
1、消息源Spout->继承BaseRichSpout类或者实现IRichSpout接口:
- open方法,初始化动作;
- nextTuple方法,消息接入,执行数据的发射;
- ack方法,tuple成功处理后调用;
- fail方法,tuple处理失败时调用;
- declareOutputFields方法,声明输出字段。
2、处理单元Bolt->继承BaseBasicBolt类或者实现IRichBolt接口:
- prepare方法,worker启动时初始化;
- execute方法,接受一个tuple并执行逻辑处理,发射出去;
- cleanup方法,关闭前调用;
- declareOutputFields方法,字段申明。
三、Storm应用实例的实现步骤
1、根据自己业务需求进行方案及拓扑的设计,并通过代码来实现拓扑
2、将编写好的源代码进行打包(最好用maven来操作)
$ mvn package // 这种打包方式将不包含依赖包
$ mvn assembly:assembly //包含依赖包
3、将拓扑提交到集群上运行
$ storm jar [jar包的名称] [包中实现topology的类的地址] [自定义的topology的名称]
4、进行拓扑UI的监控
$ nohup storm ui &
以下是UI界面监控的集群及Topology的情况:

以下是Topology的详细情况:

最后是Storm执行Topology任务后的输出结果:

Storm 使用手册的更多相关文章
- Storm官方帮助手册翻译(下)
使用其他语言编写Bolt Bolt可以使用任意语言编写.用另外一种语言编写Bolt来作为子进程运行.Storm会在标准输入输出的基础上使用Json来与子进程通信.通信协议之需要一个100行的适配器库, ...
- Storm官方帮助手册翻译(上)
Storm作为当前最流行的实时计算框架,自Twitter将其开源后就一直备受关注.由于其具有先天的稳定性以及便捷性,目前被许多大公司所采用,国外像雅虎.雅虎日本.Twitter.OOYALA.Spot ...
- Storm中遇到的日志多次重写问题(一)
业务描述: 统计从kafka spout中读取的数据条数,以及写入redis的数据的条数,写入hdfs的数据条数,写入kafaka的数据条数.并且每过5秒将数据按照json文件的形式写入日志.其中保存 ...
- Storm 实战:构建大数据实时计算
Storm 实战:构建大数据实时计算(阿里巴巴集团技术丛书,大数据丛书.大型互联网公司大数据实时处理干货分享!来自淘宝一线技术团队的丰富实践,快速掌握Storm技术精髓!) 阿里巴巴集团数据平台事业部 ...
- storm源码之storm代码结构【译】【转】
[原]storm源码之storm代码结构[译] 说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正 ...
- storm环境搭建
备注——使用: 1.单机版本: 启动zkServer.nimbus.supervisor.ui服务: zkServer.sh start zkServer.sh status #查看zkserver是 ...
- 【原】storm源码之storm代码结构【译】
说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助 ...
- storm入门教程 第一章 前言[转]
1.1 实时流计算 互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率.正因为大家对信息实时响应.实时交互的需求,软件行业除了个人操作系统之外,数据库 ...
- storm源码之storm代码结构【译】
storm源码之storm代码结构[译] 说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于S ...
随机推荐
- Tunnel Warfare(线段树取连续区间)
emmmmmmmm我菜爆了 思路来自:https://blog.csdn.net/chudongfang2015/article/details/52133243 线段树最难的应该就是要维护什么东西 ...
- CSS3 flexbox 布局 ---- flex 容器属性介绍
flexbox布局是CSS3中新增的属性,它可以很轻松地帮我们解决掉一些常见的布局问题,比如导航栏. 我们用普通的方法写导航栏,通常会在ul, li 结构写好后,让li 元素左浮动,然后再给ul 清浮 ...
- Nginx 假如reload或reopen时发生错误如何解决
配置Nginx 如果reload 或 quit发生不存在文件的时候 重新编译下即可 ./nginx -c /usr/local/webserver/nginx/conf/nginx.conf //重 ...
- fastjson 操作
1.String 转 bean String addition = ...; CoffeeFormula formula = JSON.parseObject(addition, new TypeRe ...
- Node——服务器上安装Node.js
服务器版本 [root@izuf63g0jydq42k49eo7zcz ~]# uname -a Linux izuf63g0jydq42k49eo7zcz -.el7.x86_64 # SMP Tu ...
- [USACO12MAR] 花盆Flowerpot
类型:二分+单调队列 传送门:>Here< 题意:给出$N$个点的坐标,要求根据$x$轴选定一段区间$[L,R]$,使得其中的点的最大与最小的$y$值之差$\geq D$.求$Min\{R ...
- 【POJ1083】 Moving Tables (并行的搬运)
BUPT2017 wintertraining(15) #6E 题意 房间1和2,3和4,...,399和400共用一节走廊,有q次从房间li到ri的搬运桌子,一次搬运10分钟.两个搬运如果走廊有重叠 ...
- 【BZOJ5469】[FJOI2018]领导集团问题(动态规划,线段树合并)
[BZOJ5469][FJOI2018]领导集团问题(动态规划,线段树合并) 题面 BZOJ 洛谷 题解 题目就是让你在树上找一个最大的点集,使得两个点如果存在祖先关系,那么就要满足祖先的权值要小于等 ...
- 如何减少UI设计师产品与前端工程师的沟通成本
在日常工作中,UI设计师/产品与前端工程师难免会有一些冲突,这是我的一些小建议. 1.如何减少时间成本 先制作UI组件,再拼接页面 如果UI给前端的是一堆页面,前端需要花一些时间去整理提取UI组件.另 ...
- 【bfs】献给阿尔吉侬的花束
[题目描述] 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫.今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪.现在研究员们想 ...