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)
相关推荐
Storm集群由以下几个关键组件构成: - **Nimbus**:集群中的主节点,负责分配任务、管理集群状态以及协调任务部署。 - **Supervisor**:运行在每个工作节点上的守护进程,负责监听分配的任务,并启动和管理Worker...
这个过程涉及到以下几个关键知识点: 1. **安装与配置**:首先,你需要在本地安装Java Development Kit (JDK) 并配置好环境变量。然后,下载并安装Apache Maven,Maven是Java项目管理工具,用于构建和管理jar包。 ...
Storm的核心源码主要包括以下几个方面: 1. **Nimbus和Supervisor的实现**:这部分代码实现了Nimbus和Supervisor的主循环逻辑,包括任务分配、心跳检测、故障恢复等功能。 2. **Topology构建**:Topology是Storm的...
Storm包含以下几个主要组件: 1. **Nimbus**:作为Master节点,负责任务调度和资源分配,确保工作负载在集群中的平衡分布。 2. **Supervisor**:在工作节点上运行,接收Nimbus的任务分配,管理Worker进程,确保...
Storm 集群的工作流程主要包括以下几个步骤: 1. 用户提交 topology 给 Nimbus。 2. Nimbus 将 topology 分配给 Supervisor。 3. Supervisor 将任务分配给 Worker。 4. Worker 执行具体的任务,包括 Spout 和 Bolt...
消息传递机制是Storm中的核心概念之一。在Storm中,Tuple的接收和发送使用了一种称为disruptor的高性能内存队列。Tuple接收过程包括worker创建接收线程、从socket接收消息、disruptor在线程间传递消息以及消息被...
RDD 具有以下几个特点: - **容错性**:RDD 能够自动恢复丢失的数据分区。 - **可缓存**:数据可以保存在内存中,以提高重复使用的性能。 - **血统**:每个 RDD 都记录了它是由哪些操作产生的,这种依赖关系被...
Apache Storm 的核心概念包括以下几个部分: 1. **拓扑(Topology)**:在 Storm 中,用户通过编写拓扑来定义数据流的处理逻辑。一个拓扑由多个 bolts 和 spouts 组成,它们通过 streams 相互连接。Bolts 执行复杂...
其编程模型主要包括以下几个概念: 1. **Spout**: 数据流的源头,类似于Hadoop中的InputFormat,负责从外部系统读取数据并将数据发射到Storm拓扑结构中。 2. **Bolt**: 数据处理的单元,类似于Hadoop中的Mapper或...
根据提供的文件信息,我们可以从以下几个方面来探讨与Hadoop、Storm、HBase和Spark相关的知识点。 ### Hadoop #### 1. Hadoop简介 Hadoop是一个开源软件框架,用于分布式存储和处理大型数据集。它由Apache基金会...
在"Storm简单示例"中,我们通常会接触到以下几个关键概念和步骤: 1. **拓扑(Topology)**:在Storm中,拓扑是数据流处理的核心。它定义了数据如何在各个组件之间流动。一个拓扑包含多个 Bolt 和 Spout 组件,Bolt...
Apache Storm的核心概念包括以下几个部分: 1. **Topology**:这是Storm中的核心工作单元,它定义了数据流的处理逻辑。一个拓扑由多个 Bolt 和 Spout 组成,Bolt 负责数据处理,Spout 负责生成数据流。 2. **Spout...
这本书主要涵盖了以下几个关键知识点: 1. **Storm基础**:首先,书中会介绍Storm的基本概念,包括拓扑结构、工作原理、数据流模型等。读者将了解到Spout(数据源)和Bolt(处理组件)的角色,以及它们如何协同工作...
本书的内容包含了以下几个重要知识点: 1. Storm的基本概念和架构:介绍Storm的基础理论,包括其核心概念如Tuple、Spout、Bolt、Stream grouping等,以及Storm的工作原理和架构设计。了解这些基础知识是掌握Storm...
总的来说,“kafka-storm.7z”工具包为开发者提供了一个快速接入Kafka和Storm的平台,简化了大数据实时处理的复杂性。通过掌握Kafka和Storm的原理以及它们的集成方法,可以有效地构建出满足业务需求的实时数据处理...
图像检索是计算机视觉领域的一个重要组成部分,它涉及到从大量的图像数据库中找出与查询图像相似的图像。由于图像处理任务通常计算密集型,对于CPU的需求较高,因此在本地硬件上执行可能无法满足实时性或效率的要求...
Apache Storm的核心组件包括以下几个方面: 1. **Topology**:是Storm的基本计算单元,它定义了数据流的处理逻辑。一个Topology由多个Bolt(处理组件)和Spout(数据源)组成,数据流在这些组件之间传输。Bolts执行...
首先,Storm的结构体系中几个核心概念是必须要了解的: 1. **Topology(拓扑)**:Topology是Storm中数据处理流程的抽象,它是一个有向无环图,其中节点是Spout和Bolt,边表示数据流向。Topology是Storm中最高层级...
Storm的核心概念包括以下几个方面: 1. **拓扑(Topology)**:拓扑是Storm中的核心构造块,它定义了数据流如何在各个组件间进行处理。一个拓扑由多个**bolt**(处理节点)和**spout**(数据源节点)组成,通过**...
此外,为了提高系统的稳定性和容错性,我们还需要考虑以下几个方面: 1. **故障恢复**:Storm支持故障检测和自动恢复,当某个节点失败时,可以自动重新分配任务,确保系统的连续运行。 2. **资源管理**:利用Apache...