`
小网客
  • 浏览: 1241391 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

storm平台之几个重要概念

 
阅读更多

storm平台几个重要概念概述如下:

1 Topologies

拓扑,计算单元,类似hadoop中的job,整个执行环形单位,从Spouts中获取数据,然后依次在Bolts中执行,不会终止,会一直执行直到显示结束。

 

2 Spouts

数据源泉,获取数据,是整个拓扑数据的生产者。

主要涉及的方法如下:

1.nextTuple:发射新tuple到topology/无tuple时返回;

2.ack:storm检测到一个tuple被整个topology处理成功时调用;

3.fail:storm检测到一个tuple被整个topology处理失败时调用;

 

3 Bolts

具体任务的执行者,具体消息处理逻辑实现,处理过程概述如下:

1.Bolts处理一个输入的tuple;

2.发射0/多个tuple;

3.调用ack通知storm:已经处理过本tuple;

 

4 Streams消息流

具体的数据流以tuple来体现他的存在,可以指定一个唯一的id。

 

5消息分发策略

Stream groupings,为定义一个流的分发策略,也就是说Spouts产生的数据怎么向Bolts流,目前支持六种分发策略:

1. Shuffle Grouping: 随机分组, 随机派发stream里面的tuple, 保证每个bolt接收到的tuple数目相同.

2. Fields Grouping:按字段分组, 比如按userid来分组, 具有同样userid的tuple会被分到相同的Bolts, 而不同的userid则会被分配到不同的Bolts.

3. All Grouping: 广播发送, 对于每一个tuple, 所有的Bolts都会收到.

4. Global Grouping: 全局分组,这个tuple被分配到storm中的一个bolt的其中一个task.再具体一点就是分配给id值最低的那个task.

5. Non Grouping: 不分组,意思是说stream不关心到底谁会收到它的tuple.目前他和Shuffle grouping是一样的效果,有点不同的是storm会把这个bolt放到这个bolt的订阅者同一个线程去执行.

6. Direct Grouping: 直接分组,这是一种比较特别的分组方法,用这种分组意味着消息的发送者由消息接收者的哪个task处理这个消息.只有被声明为Direct Stream的消息流可以声明这种分组方法.而且这种消息tuple必须使用emitDirect方法来发射.消息处理者可以通过TopologyContext来或者处理它的消息的taskid (OutputCollector.emit方法也会返回taskid)

 

3
4
分享到:
评论

相关推荐

    细细品味Storm_Storm简介及安装

    Storm集群由以下几个关键组件构成: - **Nimbus**:集群中的主节点,负责分配任务、管理集群状态以及协调任务部署。 - **Supervisor**:运行在每个工作节点上的守护进程,负责监听分配的任务,并启动和管理Worker...

    storm开发jar包以及storm例子源码

    这个过程涉及到以下几个关键知识点: 1. **安装与配置**:首先,你需要在本地安装Java Development Kit (JDK) 并配置好环境变量。然后,下载并安装Apache Maven,Maven是Java项目管理工具,用于构建和管理jar包。 ...

    Storm 源码分析

    Storm的核心源码主要包括以下几个方面: 1. **Nimbus和Supervisor的实现**:这部分代码实现了Nimbus和Supervisor的主循环逻辑,包括任务分配、心跳检测、故障恢复等功能。 2. **Topology构建**:Topology是Storm的...

    storm安装包

    Storm包含以下几个主要组件: 1. **Nimbus**:作为Master节点,负责任务调度和资源分配,确保工作负载在集群中的平衡分布。 2. **Supervisor**:在工作节点上运行,接收Nimbus的任务分配,管理Worker进程,确保...

    STORM学习文档

    Storm 集群的工作流程主要包括以下几个步骤: 1. 用户提交 topology 给 Nimbus。 2. Nimbus 将 topology 分配给 Supervisor。 3. Supervisor 将任务分配给 Worker。 4. Worker 执行具体的任务,包括 Spout 和 Bolt...

    Storm源码走读笔记

    消息传递机制是Storm中的核心概念之一。在Storm中,Tuple的接收和发送使用了一种称为disruptor的高性能内存队列。Tuple接收过程包括worker创建接收线程、从socket接收消息、disruptor在线程间传递消息以及消息被...

    storm与spark简介

    RDD 具有以下几个特点: - **容错性**:RDD 能够自动恢复丢失的数据分区。 - **可缓存**:数据可以保存在内存中,以提高重复使用的性能。 - **血统**:每个 RDD 都记录了它是由哪些操作产生的,这种依赖关系被...

    apache-storm-1.0.2-src

    Apache Storm 的核心概念包括以下几个部分: 1. **拓扑(Topology)**:在 Storm 中,用户通过编写拓扑来定义数据流的处理逻辑。一个拓扑由多个 bolts 和 spouts 组成,它们通过 streams 相互连接。Bolts 执行复杂...

    Storm实现的应用模型研究

    其编程模型主要包括以下几个概念: 1. **Spout**: 数据流的源头,类似于Hadoop中的InputFormat,负责从外部系统读取数据并将数据发射到Storm拓扑结构中。 2. **Bolt**: 数据处理的单元,类似于Hadoop中的Mapper或...

    hadoop storm hbase spark

    根据提供的文件信息,我们可以从以下几个方面来探讨与Hadoop、Storm、HBase和Spark相关的知识点。 ### Hadoop #### 1. Hadoop简介 Hadoop是一个开源软件框架,用于分布式存储和处理大型数据集。它由Apache基金会...

    Storm 简单示例

    在"Storm简单示例"中,我们通常会接触到以下几个关键概念和步骤: 1. **拓扑(Topology)**:在Storm中,拓扑是数据流处理的核心。它定义了数据如何在各个组件之间流动。一个拓扑包含多个 Bolt 和 Spout 组件,Bolt...

    apache-storm-2.1.0.tar.gz

    Apache Storm的核心概念包括以下几个部分: 1. **Topology**:这是Storm中的核心工作单元,它定义了数据流的处理逻辑。一个拓扑由多个 Bolt 和 Spout 组成,Bolt 负责数据处理,Spout 负责生成数据流。 2. **Spout...

    Storm企业级应用实战、运维和调优

    这本书主要涵盖了以下几个关键知识点: 1. **Storm基础**:首先,书中会介绍Storm的基本概念,包括拓扑结构、工作原理、数据流模型等。读者将了解到Spout(数据源)和Bolt(处理组件)的角色,以及它们如何协同工作...

    Storm实战构建大数据实时计算

    本书的内容包含了以下几个重要知识点: 1. Storm的基本概念和架构:介绍Storm的基础理论,包括其核心概念如Tuple、Spout、Bolt、Stream grouping等,以及Storm的工作原理和架构设计。了解这些基础知识是掌握Storm...

    kafka-storm.7z

    总的来说,“kafka-storm.7z”工具包为开发者提供了一个快速接入Kafka和Storm的平台,简化了大数据实时处理的复杂性。通过掌握Kafka和Storm的原理以及它们的集成方法,可以有效地构建出满足业务需求的实时数据处理...

    图像检索和storm

    图像检索是计算机视觉领域的一个重要组成部分,它涉及到从大量的图像数据库中找出与查询图像相似的图像。由于图像处理任务通常计算密集型,对于CPU的需求较高,因此在本地硬件上执行可能无法满足实时性或效率的要求...

    Apache Storm技术参考手册.docx

    Apache Storm的核心组件包括以下几个方面: 1. **Topology**:是Storm的基本计算单元,它定义了数据流的处理逻辑。一个Topology由多个Bolt(处理组件)和Spout(数据源)组成,数据流在这些组件之间传输。Bolts执行...

    storm基础培训

    首先,Storm的结构体系中几个核心概念是必须要了解的: 1. **Topology(拓扑)**:Topology是Storm中数据处理流程的抽象,它是一个有向无环图,其中节点是Spout和Bolt,边表示数据流向。Topology是Storm中最高层级...

    storm-0.7.2

    Storm的核心概念包括以下几个方面: 1. **拓扑(Topology)**:拓扑是Storm中的核心构造块,它定义了数据流如何在各个组件间进行处理。一个拓扑由多个**bolt**(处理节点)和**spout**(数据源节点)组成,通过**...

    storm-kafka实时趋势分析

    此外,为了提高系统的稳定性和容错性,我们还需要考虑以下几个方面: 1. **故障恢复**:Storm支持故障检测和自动恢复,当某个节点失败时,可以自动重新分配任务,确保系统的连续运行。 2. **资源管理**:利用Apache...

Global site tag (gtag.js) - Google Analytics