Storm
----------------------------------------
实时计算系统。
使用场景:实时分析,在线机器学习,持续计算。
速度快,每秒每节点处理数据百万tuple级别。
无状态,集群状态和分布式环境信息在zk中保存。
确保每个消息至少被消费一次。
Storm核心概念
--------------------------------------
1. Tuple 元组,数据结构,有序的元素列表。通常是任意类型的数据,使用逗号分隔,交给storm计算。
2. Stream 无序的tuple集合。
3. Spouts:水龙头, 数据源
4. Bolts:转接头。 逻辑处理单元,spout传数据给bolt,bolt处理后产生新的数据,可以filter、聚合、分组。 流程: 接收数据-->处理-->输出给bolt(可以多个)。
5. Toplogy:拓扑, Spouts和Bolts的连接形成Topology。简单讲Topology是一个有向图,点是计算,边是数据流。
6. Task : spout或bolt的执行。 a task is either the execution of a spout or a bolt. At a given time, each spout and bolt can have multiple instances running in multiple separate threads.
7. Workers:工作节点,Task的执行者。Storm在workers之间均衡分发任务,worker负责监听并执行job。
8. Stream grouping: 控制tuples如何在Topology中进行路由。Storm内置的有四种路由策略:
Shuffle grouping: tuples在所有workers间随机路由。
Field grouping:将tuples按Filed进行分组,相同的Fileds被分配到同一个worker。
Global grouping:将所有tuples分配到同一个worker。
All grouping: 将一个puple分发给所有workers。
Storm组件
------------------------------------------------
a. Nimbus :灵气 master node
Master node is responsible for distributing data among all the worker nodes, assign tasks to worker nodes and monitoring failures.
b. Supervisor: 监督人
它拥有多个worker process,负责监督管理worker process来完成Nimbus分配的任务。 A supervisor has multiple worker processes and it governs worker processes to complete the tasks assigned by the nimbus.
c. Worker process
负责执行具体的Topology,它并不自己运行task,而是创建多个executors,让他们去执行。 A worker process will execute tasks related to a specific topology. A worker process will not run a task by itself, instead it creates executors and asks them to perform a particular task. A worker process will have multiple executors.
d. Executor
Worker process 的一个线程,一个Exector只能为一个特定的Spout或Bolt执行一个或多个Task。 An executor is nothing but a single thread spawn by a worker process. An executor runs one or more tasks but only for a specific spout or bolt.
e. Task
A task performs actual data processing. So, it is either a spout or a bolt.
Storm工作流
1. Nimbus 等待新Topology的提交。
2. Topology提交后,Nimbus收集所有可用的tasks,并不组织tasks的顺序。
3. Nimbus将所有tasks平均分配到所有可用的Supervisors。
4. 每隔一段时间,Supervisors会向Nimbus发送心跳包表明它还活着。
5. 当一个Supervisor不再发送心跳包,Nimbus会把tasks发送给其它Supervisors。
6. 当Bimbus死掉,Supervisors会继续执行已分配的任务,不会产生差错。
7. 当所有tasks执行完成,Supervisor会等待新的tasks。
8. 同时,死掉的Nimbus会被监控工具开启。
9. 重启的Nimbus会从上次停止的地方继续工作。Storm担保所有的task至少被执行一次。
10. 一旦所有的Topology执行完成,Nimbus会接收新的Topology,Supervisor会接收新的task。
Storm运行模式
------------------------------------
1. Local Mode 在同一个JVM中执行
2. Production Mode 在集群中执行
参考:
https://www.tutorialspoint.com/apache_storm/index.htm
相关推荐
Storm简介Storm简介Storm简介Storm简介Storm简介 Storm简介Storm简介Storm简介Storm简介Storm简介
### Storm简介及安装知识点梳理 #### 一、Storm简介 **Storm** 是一款由BackType公司开发的分布式实时计算系统,后被Twitter收购并开源。它主要用于处理大规模的数据流,能够简单、高效、可靠地处理实时数据。...
01、Storm的集群搭建 01-storm简介.avi
云计算平台Storm简介.pdf
Storm是一个开源的实时计算系统,它解决了传统批处理系统如Hadoop在实时数据处理上的不足。Storm的目标是提供低延迟、高性能、分布式、可扩展且具有容错能力的解决方案,以适应现代大数据时代对实时分析和响应的需求...
#### 一、Storm简介与应用场景 Apache Storm是一款开源的分布式实时计算系统,它提供了简单而强大的API来定义数据流处理逻辑,同时保证了消息处理的容错性和高性能。Storm的设计目标是成为实时计算领域的Hadoop,...
一、Storm简介 Apache Storm是一个开源的分布式实时计算系统,它允许开发者处理无限的数据流,就像处理数据库查询一样简单。Storm在实时处理领域的应用广泛,涵盖了社交媒体分析、实时仪表盘、物联网(IoT)数据处理等...
一、Apache Storm 简介 Apache Storm 是一种开源的分布式实时计算系统,它允许开发者创建可以连续处理无界数据流的系统。Storm 保证每个消息至少被处理一次(at-least-once processing),确保了数据处理的可靠性。...
1. **Storm简介**:介绍Storm的基本概念,如拓扑结构(topology)、bolts和spouts等,以及其在大数据处理中的角色。 2. **安装与配置**:详述如何在本地或集群环境中安装Storm,包括依赖库的安装、环境变量设置和...
**一、Storm简介** Apache Storm的核心概念包括:拓扑(Topology)、工作者(Worker)、节点(Spout)和 bolt(Bolt)。拓扑是 Storm 应用的基本结构,由多个节点和bolt组成,它们之间通过流(Stream)进行连接。节点负责产生...
1. **Apache Storm 简介**: Apache Storm 是一个用于实时大数据处理的开源框架,由 Twitter 开发并贡献给 Apache 软件基金会。它专注于高吞吐量、低延迟的数据处理,尤其适合实时分析、在线机器学习、持续计算和...
#### 一、Storm简介 **1.1 什么是Storm** Apache Storm 是一个开源的分布式实时计算系统,能够处理大量实时数据流。Storm 的设计目的是为了实现实时处理,它能够确保每个事件都能得到及时处理,并且支持多种编程...
01-storm简介 02-storm部署-1 03-storm部署-2 04-storm部署概念 05-streamgrouping 06-storm组件生命周期 07-storm可靠性1 08-storm可靠性2
一、Storm简介 Apache Storm是一个开源的分布式实时计算系统,由Twitter开源并贡献给社区。它的设计目标是能够处理无界数据流,即不断产生的、没有终点的数据流。与批处理系统不同,Storm保证每个消息都会被处理至少...
Apache Storm简介 - **定义**:Apache Storm是一种分布式实时计算系统,能够处理海量的流数据,并支持复杂的流处理任务。 - **特性**: - **容错性**:自动故障检测与恢复机制确保数据处理过程中的稳定性。 - **...
Storm简介 Apache Storm是一个免费开源的分布式实时计算系统。Storm可以很容易地与各种队列系统和数据库系统集成,用来实现复杂的流处理逻辑。 #### 2. Storm的工作机制 - **Topology**:Storm应用程序的基本单元...
### Apache Storm简介 Apache Storm是一种分布式实时计算系统,能够处理无界数据流,即连续不断的数据流。它最初由Nathan Marz和BackType团队开发,并于2011年开源。Storm的主要特点是其对实时数据流的处理能力,它...