`

Storm简介

 
阅读更多

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简介及安装

    ### Storm简介及安装知识点梳理 #### 一、Storm简介 **Storm** 是一款由BackType公司开发的分布式实时计算系统,后被Twitter收购并开源。它主要用于处理大规模的数据流,能够简单、高效、可靠地处理实时数据。...

    01、Storm的集群搭建 01-storm简介.avi

    01、Storm的集群搭建 01-storm简介.avi

    云计算平台Storm简介.pdf

    云计算平台Storm简介.pdf

    Storm简介.pdf

    Storm是一个开源的实时计算系统,它解决了传统批处理系统如Hadoop在实时数据处理上的不足。Storm的目标是提供低延迟、高性能、分布式、可扩展且具有容错能力的解决方案,以适应现代大数据时代对实时分析和响应的需求...

    Storm 源码分析

    #### 一、Storm简介与应用场景 Apache Storm是一款开源的分布式实时计算系统,它提供了简单而强大的API来定义数据流处理逻辑,同时保证了消息处理的容错性和高性能。Storm的设计目标是成为实时计算领域的Hadoop,...

    storm实时数据处理

    一、Storm简介 Apache Storm是一个开源的分布式实时计算系统,它允许开发者处理无限的数据流,就像处理数据库查询一样简单。Storm在实时处理领域的应用广泛,涵盖了社交媒体分析、实时仪表盘、物联网(IoT)数据处理等...

    storm-hbase集成

    一、Apache Storm 简介 Apache Storm 是一种开源的分布式实时计算系统,它允许开发者创建可以连续处理无界数据流的系统。Storm 保证每个消息至少被处理一次(at-least-once processing),确保了数据处理的可靠性。...

    storm中文学习资料

    1. **Storm简介**:介绍Storm的基本概念,如拓扑结构(topology)、bolts和spouts等,以及其在大数据处理中的角色。 2. **安装与配置**:详述如何在本地或集群环境中安装Storm,包括依赖库的安装、环境变量设置和...

    storm程序代码示例

    **一、Storm简介** Apache Storm的核心概念包括:拓扑(Topology)、工作者(Worker)、节点(Spout)和 bolt(Bolt)。拓扑是 Storm 应用的基本结构,由多个节点和bolt组成,它们之间通过流(Stream)进行连接。节点负责产生...

    apache-storm-1.0.2.tar.gz

    1. **Apache Storm 简介**: Apache Storm 是一个用于实时大数据处理的开源框架,由 Twitter 开发并贡献给 Apache 软件基金会。它专注于高吞吐量、低延迟的数据处理,尤其适合实时分析、在线机器学习、持续计算和...

    storm 从零到精通 非常实用的文件

    #### 一、Storm简介 **1.1 什么是Storm** Apache Storm 是一个开源的分布式实时计算系统,能够处理大量实时数据流。Storm 的设计目的是为了实现实时处理,它能够确保每个事件都能得到及时处理,并且支持多种编程...

    传智播客Storm项目实战课程 Storm的集群搭建实战 Storm项目学习视频教程

    01-storm简介 02-storm部署-1 03-storm部署-2 04-storm部署概念 05-streamgrouping 06-storm组件生命周期 07-storm可靠性1 08-storm可靠性2

    Storm实时数据处理-超清文字版.pdf

    一、Storm简介 Apache Storm是一个开源的分布式实时计算系统,由Twitter开源并贡献给社区。它的设计目标是能够处理无界数据流,即不断产生的、没有终点的数据流。与批处理系统不同,Storm保证每个消息都会被处理至少...

    基于Storm构建实时热力分布项目实战.txt

    Apache Storm简介 - **定义**:Apache Storm是一种分布式实时计算系统,能够处理海量的流数据,并支持复杂的流处理任务。 - **特性**: - **容错性**:自动故障检测与恢复机制确保数据处理过程中的稳定性。 - **...

    hadoop storm hbase spark

    Storm简介 Apache Storm是一个免费开源的分布式实时计算系统。Storm可以很容易地与各种队列系统和数据库系统集成,用来实现复杂的流处理逻辑。 #### 2. Storm的工作机制 - **Topology**:Storm应用程序的基本单元...

    Storm实时数据处理.pdf

    ### Apache Storm简介 Apache Storm是一种分布式实时计算系统,能够处理无界数据流,即连续不断的数据流。它最初由Nathan Marz和BackType团队开发,并于2011年开源。Storm的主要特点是其对实时数据流的处理能力,它...

Global site tag (gtag.js) - Google Analytics