一、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 使用手册的更多相关文章

  1. Storm官方帮助手册翻译(下)

    使用其他语言编写Bolt Bolt可以使用任意语言编写.用另外一种语言编写Bolt来作为子进程运行.Storm会在标准输入输出的基础上使用Json来与子进程通信.通信协议之需要一个100行的适配器库, ...

  2. Storm官方帮助手册翻译(上)

    Storm作为当前最流行的实时计算框架,自Twitter将其开源后就一直备受关注.由于其具有先天的稳定性以及便捷性,目前被许多大公司所采用,国外像雅虎.雅虎日本.Twitter.OOYALA.Spot ...

  3. Storm中遇到的日志多次重写问题(一)

    业务描述: 统计从kafka spout中读取的数据条数,以及写入redis的数据的条数,写入hdfs的数据条数,写入kafaka的数据条数.并且每过5秒将数据按照json文件的形式写入日志.其中保存 ...

  4. Storm 实战:构建大数据实时计算

    Storm 实战:构建大数据实时计算(阿里巴巴集团技术丛书,大数据丛书.大型互联网公司大数据实时处理干货分享!来自淘宝一线技术团队的丰富实践,快速掌握Storm技术精髓!) 阿里巴巴集团数据平台事业部 ...

  5. storm源码之storm代码结构【译】【转】

    [原]storm源码之storm代码结构[译]  说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正 ...

  6. storm环境搭建

    备注——使用: 1.单机版本: 启动zkServer.nimbus.supervisor.ui服务: zkServer.sh start zkServer.sh status #查看zkserver是 ...

  7. 【原】storm源码之storm代码结构【译】

    说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助 ...

  8. storm入门教程 第一章 前言[转]

    1.1   实时流计算 互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率.正因为大家对信息实时响应.实时交互的需求,软件行业除了个人操作系统之外,数据库 ...

  9. storm源码之storm代码结构【译】

    storm源码之storm代码结构[译] 说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于S ...

随机推荐

  1. 如何在虚拟机下配置centOS7

    链接地址:https://baijiahao.baidu.com/s?id=1597320700700593557&wfr=spider&for=pc

  2. Elasticsearch 5.x 字段折叠的使用

    在Elasticsearch 5.x  之前,如果实现一个数据折叠的功能是非常复杂的,随着5.X的更新,这一问题变得简单,找到了一遍技术文章,对这个问题描述的非常清楚,收藏下. 参考:https:// ...

  3. Codeforces962F Simple Cycles Edges 【双连通分量】【dfs树】

    题目大意: 给出一个无向图,问有哪些边只属于一个简单环. 题目分析: 如果这道题我们掌握了点双连通分量,那么结论会很显然,找到每个点双,如果一个n个点的点双正好由n条边构成,那么这些边都是可以的. 这 ...

  4. [HAOI2007] 修筑绿化带

    类型:单调队列 传送门:>Here< 题意:给出一个$M*N$的矩阵,每一个代表这一格土地的肥沃程度.现在要求修建一个$C*D$的矩形花坛,矩形绿化带的面积为$A*B$,要求花坛被包裹在绿 ...

  5. 普通Splay详解

    预备知识: 二叉搜索树(BST) 至于BST,随便看一下就可以, 我们知道二叉搜索树是O(logN)的,那我们为什么要用平衡树呢? 之前我们了解到,BST的插入是小的往左子树走,大的往右子树走,如果凉 ...

  6. ecplise properties文件 中文转码

    1.安装插件 2.重开ecplise 3.在项目的乱码文件如jeesite.properties右键 openwith propertiesEditor 就可以看到中文了 输入 proedit 安装完 ...

  7. Summary (7Road)

    今天有幸参加了一次考试,碰到的一些考题如下: 很多东西,明明都是会的,可是就是写不出来.可见自己的Linux基础还是很薄弱,懒得去记这些有用的东西.既然自己不是老板,不是项目经理,就该努力记住这些基础 ...

  8. Centos Install Keepalived

    Keepalived简介Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔 ...

  9. OpenDCIM-19.01操作手册

    OpenDCIM-19.01操作手册 1. 界面标签解析 1.1  用户管理 用户管理 部门管理 用户管理被存在数据表fac_User中,包含以下字段: UserID:是管理员还是用户 Name:报表 ...

  10. 线段树 by yyb

    线段树 by yyb Type1 维护特殊信息 1.[洛谷1438]无聊的数列 维护一个数列,两种操作 1.给一段区间加上一个等差数列 2.单点询问值 维护等差数列 不难发现,等差数列可以写成\(ad ...