Storm实时流处理原理与实践之一:Storm基本概念

Apache Storm是一款开源的分布式实时计算系统,适用于实时数据处理、机器学习等场景。本文介绍Storm的基本概念如Topology、Spout和Bolt,以及其主从架构,包括Nimbus、Supervisor和Worker的角色和工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

Apache Storm是一个分布式的实时计算框架,用于实时分析、机器学习、连续计算、分布式RPC、ETL等等。
Storm的topology消费数据流,对数据流做各种复杂处理,可以分区并在各个阶段stage对流做计算。Storm内在的并发机制使得可以达到高吞吐量和低延时。

Storm流处理概念

Storm需要掌握以下几个概念:Topology、Spout、Bolt。下面先从一张图来直观的了解:
在这里插入图片描述
流处理可以将数据流想象为水流,原始数据流进入喷水孔(Spout),经过各个螺栓(Bolt)分流处理,最终将计算结果保存在数据库等。其中数据流是tuple stream。tuple是Storm中的基本数据结构,tuple可以理解为一个有序字段列表,每个字段(filed)可以是任何数据类型。通过Bolt中的declare来生声明tuple中的字段名称(newFields(“name1”,“name2”)), 所有的数据处理在Bolt内完成。整个Spout和Bolt构成一个拓扑图,称为Topology。

Storm架构

Storm是主从架构,Nimbus主节点将job分发给Supervisor启动Worker进程,Worker启动Executor线程池执行Task。
在这里插入图片描述

Nimbus和Supervisor通过Zookeeper实现信息交互,其往Zookeeper写数据,由另一方读取数据,达到信息的同步。
Nimbus主节点运行和分析topology,分发task给Supervisor。在Zookeeper的znode写入job信息,Supervisor来读取znode的信息。 Storm的daemons、Nimbus 、Supervisors被设计成无状态的和fail-fast,依靠Zookeeper监控节点状态,如果Worker进程故障会自动重启,如果节点故障会启动其他节点,以达到高容错。
Supervisor拿到job后,启动多个Worker进程,Worker启动多个Executor线程池,Executor运行的task都属于同一Spout或Bolt。

参考资料
http://storm.apache.org/releases/1.0.6/index.html
https://www.tutorialspoint.com/apache_storm/apache_storm_tutorial.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值