storm_概念

本文深入探讨了Storm实时计算框架的核心概念,包括元组、流、喷口、螺栓、拓扑及其工作原理。介绍了Nimbus和Supervisor在集群中的角色,以及它们如何协同工作以确保Storm的高效运行。

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

1.元组(Tuple)

元组,是消息传递的基本单元,是一个命名的值列表,元组中的字段可以是任何类型的对象。Storm使用元组作为其数据模型,元组支持所有的基本类型、字符串和字节数组作为字段值,只要实现类型的序列化接口就可以使用该类型的对象。元组本来应该是一个key-value的Map,但是由于名个组件间传递的元组的字段名称已经事先定义好,所以只要按序把元组填入名个value即可,所以元组是一个value的list。

 

2.流(stream)

流(stream)是storm的核心抽象,是一个无界的元组序列。源源不断传递的元组就组成流。在分布式环境中并行地进行创建和处理。

即:流由元组组成。

 

3.喷口(spout)

喷口是拓扑的流来源,是一个拓扑中产生源数据流的组件。通常情况下,spout会从外部数据源(例如Twitter API,RaitMQ)中读取数据,然后转换为拓扑内部的源数据。Spout可以是可靠的,也可以是不可靠的。如果storm处理元组失败,可靠的spout能够重新发射,而不可靠的spout就尽快忘记发出的元组。Spout是一个主动的角色,其接口中有个nextTuple()函数,storm框架会不停地调用此函数,用户只要在其中生成源数据即可。

 

4.螺栓(bolt)

    在拓扑中的所有处理都在bolt中完成,bolt是流的处理节点,从一个拓扑接收数据然后执行进行处理的组件。Bolt可以完成过滤、业务处理、连接运算、连接与访问数据库等任何操作。Bolt是一个被动的角色,其接口中有一个execute()方法,在接收到消息后会调用此方法,用户可以在其中执行自己希望的操作。

Spout是流的源并没有,通常从外部数据源读取元组,并emit到拓扑中。

Bolt接收任何数据的输入流,执行处理后,可能提交新的流。

 

5.拓扑(topology)

拓扑是storm中运行的一个实时应用程序,因为各个组件间的消息流动而形成逻辑上的拓扑结构。

在java中,使用topologyBuilder类来构造拓扑。

 

6.Nimbus、Supervisor

主控节点运行一个称为Nimbus的守护进程,类拟于Hadoop的JobTracker。Nimbus负责在集群中分发代码,对节点分配任务,并监视主机故障。

每个工作节点运行一个称为superviosr的守护进程。Supervisor监听其主机上已经分配的主机作业,启动和停止nimbus已经分配的工作进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值