文档章节

一、初识Storm

datapro
 datapro
发布于 2015/06/16 19:18
字数 659
阅读 251
收藏 8

1、Storm基本概念:

Nimbus:负责资源分配和任务调度

Supervisor:负责Nimbus分配的任务,启动和停止属于自己管理的worker进程

Worker:运行具体处理逻辑的组件进程

Spout/Bolt(Task):worker中每一个(Spout/Bolt)线程称为一个Task,在storm0.8版本之后,task不再与物理线程对应,同一个Spout/Bolt的Task可能共享一个物理线程,该线程称为executor

Topology:所有组件(即Spouts/Bolts)的排列与连接被称之为一个Topology

Spout:产生源数据流的组件

Bolt:接收、执行数据的组件

Tuple:消息传递的基本单元(将消息放在Tuple中进行传输)

Stream:源源不断的传递的Tuple组成了Stream

数据处理的过程:

    处理工作被分派给不同类型的组件(components),每个组件分别负责一个简单、特定的处理任务。处理Storm集群输入流的组件叫喷口(spout),喷口再将数据传给一个叫螺栓(bolt)的组件,并在螺栓中处理数据,处理完成之后,螺栓要么将这些数据存储起来(存储在数据库、磁盘甚至是对象中),要么将它传给其他螺栓。因此,可以将Storm集群想象成一个螺栓链,每个螺栓都会对喷口发送的数据作出一些处理。

2、Storm特性(优势/好处)

    编程简单、支持多种语言编程、容错、可扩展、可靠、快速、事务性

    与其它实时计算系统(s4, puma)的区别

    记录级容错:告知用户每一个消息单元是否在指定的时间内被完全处理(消息单元是否完全经过Topology每一个Bolt组件的处理)

    1、Spout在发送一个新源时会为Tuple指定一个Message Id(这个MessageId可以是任意对象)

    2、Topology中有一个系统级组件叫acker,acker追踪每一个从Spout中绑定MessageId所流出来的若干个Tuple的处理路径

    3、如果用户设置的最大超时时间内这些tuple没有被完全处理,那么acker就会告知spout该消息处理失败了,相反则会告知spout该消息处理成功了

    事务拓扑(Transactional Topology):storm0.7版本引入的新特性,在0.8版本替换为Trident,在0.9版本弃用,目的是为了满足对消息处理有着极其严格要求的场景,例如实时计算某个用户的成交笔数,要求结果完全精确,不能多也不能少。

© 著作权归作者所有

datapro
粉丝 16
博文 37
码字总数 22063
作品 0
广州
高级程序员
私信 提问
加载中

评论(0)

大数据(六十四)Storm【Storm安装】

一、安装过程概述 • 部署依赖环境 – Java 6+ – Python 2.6.6+ • 部署zookeeper – 3.4.5+ – ZK为什么要用3.4.5,因为它支持磁盘的快照和namenode的定期删除,避免磁盘被打满 • 分发sto...

张--小涛涛
01/26
0
0
Apache Storm 1.0.3 发布,分布式实时计算

Apache Storm 1.0.3 发布了,Apache Storm 是一个免费开源的分布式实时计算系统。简化了流数据的可靠处理,像 Hadoop 一样实现实时批处理。Storm 很简单,可用于任意编程语言。Apache Storm ...

王练
2017/02/05
1.2K
0
Twitter Storm入门

.通过学习tutorial了解storm的整体架构(https://github.com/nathanmarz/storm/wiki/Tutorial) 通过学习Concepts了解storm的关键概念(https://github.com/nathanmarz/storm/wiki/Concepts......

加油_张
2013/09/14
365
0
如何在eclipse调试storm程序

一、介绍 storm提供了两种运行模式:本地模式和分布式模式。本地模式针对开发调试storm topologies非常有用。 Storm has two modes of operation: local mode and distributed mode. In loca...

cloud-coder
2014/02/16
1W
1
Apache Storm 1.0.5 发布,分布式实时计算

Apache Storm 1.0.4 已发布,Apache Storm 是一个免费开源的分布式实时计算系统。简化了流数据的可靠处理,像 Hadoop 一样实现实时批处理。Storm 很简单,可用于任意编程语言。Apache Storm ...

王练
2017/09/16
893
5

没有更多内容

加载失败,请刷新页面

加载更多

2020 年,CEO 们对管理的理解又要变了

摘要 看到「工作流」这一层,才能看到「执行力」和「创造力」这两个大词儿,到底是怎么实现的。 从疫情爆发开始,极客公园前沿社的企业家微信群就没消停过。 群里的话题从一开始的动用能力向...

osc_7cws6vmd
24分钟前
31
0
redisson集群转载

转载:https://www.jianshu.com/p/f302aa345ca8 参考:https://segmentfault.com/a/1190000016976564 前几天发的一篇文章《Redlock:Redis分布式锁最牛逼的实现》,引起了一些同学的讨论,也...

hexiaoming123
26分钟前
58
0
postman(待续)

postman

osc_n1fa9m3z
26分钟前
29
0
jmeter(待续)

jmeter

osc_15fvklrg
27分钟前
25
0
createSQLQuery().list()查出的时间没有时分秒

在开发过程中发现提取Oracle中Date类型的数据, 开始发现本地运行的时候有时分秒, 2020-04-09 13:26:20.0 部署在服务器就没有时分秒, 2020-04-09 找了代码和jab包都没有发现差异,在网上搜...

zb1021
27分钟前
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部