
风暴原理研究和分析
5星
- 浏览量: 0
- 大小:None
- 文件类型:PPTX
简介:
### 对 storm 原理进行深入探讨
关于Storm的核心架构
关于Storm的核心架构源代码公开的流处理平台Apache Storm专为高效处理流式数据设计,
它提供了一种易于理解且功能强大的并行执行模型,
帮助开发者高效管理无尽的数据流量。
其核心组件主要包含以下几大组成部分:
每个组件都扮演着不可或缺的角色。
**Nimbus**:作为集群的核心节点,在处理任务分配、故障监测以及任务重排方面发挥关键作用。运行在独立的服务器上,并与Supervisor节点进行通信以协调资源分配和系统状态监控。Supervisor是指部署于工作节点上的监控进程,在Nimbus资源分配时持续关注其状态,并根据实时反馈自动启动或停止相关Worker进程。**Worker** 是运行在 Supervisor 上的 Java 进程家族成员,负责完成特定的任务。每个 Worker 都具备若干 Task 和 Executor 负责其操作。Executor:作为由Workar启动的Java线程,在Bolt或Spout的任务中进行处理。5. **Task**:最基本的操作单位,在大多数情况下,每个 Executor 可能承载一个至多个 Task。该角色负责实现用户自定义的功能
6. **拓扑结构**:基于 Spout 和 Bolt 构建的有向图用于表示数据流处理的过程。每一个 Topology 都具有独立的生命 cycle,在 Storm 环境中能持续运行。
Spout 用于生成数据流并传输至 Bolt 进行处理**Bolt**:数据处理器,在接收来自**Spout**或其他**Bolt**传输过来的数据后,并将其结果传递给相应的目标或直接输出至外部系统。**Tuple**:数据的基本组成单位,并由Spout系统生成后经Bolt进行处理的一组值。10. **Stream**:基于 Tuple 构建的数据流决定了数据流动的方向。**Stream Grouping**:决定了数据流中的 Tuple 如何分配给 Bolt 中的任务。Storm 支持多种分组策略。
Shuffle机制:通过随机分配 tuples 使得各个 bolts 的 task 接收到的数据量相对平衡。
Fields参数:依据 tuple 中指定字段进行分组处理,在同一字段值的情况下会定向发送同一 task。
全发送模式:所有 tuples 将被分散至 bolt 的各个 tasks 上以实现负载均衡。
全局模式:将所有 tuples 集中发送至单个 task 通常选择启动最早的那一个以保证最新数据优先处理。
等价于 shuffle模式:当目标 bolt task位于同一 worker 进程内时采用本地通信直接传递数据。
局部或 shuffle模式:若目标 bolt task位于不同 worker 进程之间则采用 shuffle机制进行分布传输。
第二章 流行技术概述:Storm元数据Storm 依赖 ZooKeeper 以存储系统的元数据信息,并旨在确保在故障发生时能够恢复。
Storm 的主要元数据包括:
核心的系统状态信息、日志记录以及关键业务参数设置等。Stormworker beaten
全部评论 (0)


