storm介绍(原理,应用场景,特点)

Storm是一个基于数据流的实时处理系统,它基于流处理模型,将数据流分成一系列的小批次,然后对每个小批次进行处理和分析,最终将结果输出到目标系统中。

在Storm中,数据流被委派给各种组件进行处理,这些组件被称为Spout和Bolt。Spout是数据流的来源,负责读取数据并将其传递给Bolt。Bolt则负责处理收到的数据,并可能将处理结果传递给下一个Bolt。

Storm集群中的服务器被称为Node,每个Node上可以运行一个或多个Worker进程。每个Worker进程执行一个或多个Bolt,这些Bolt组成了一个处理链。数据在这些处理链上传输,每个Bolt都会对收到的数据进行处理,并将结果传递给下一个Bolt。

Storm的另一个关键特性是它能够保证每个消息都会得到处理。当一个消息被处理失败时,Storm会重新尝试处理该消息,直到它被成功处理为止。

原理:

Storm的原理是基于流处理模型,通过将数据流分解成小批次并进行实时处理和分析,实现了高吞吐量、低延迟、可靠的数据处理。

适用场景:

Storm可以用于处理实时分析、在线机器学习、连续计算、分布式RPC、ETL等各种应用场景。它是一个开源的分布式实时计算框架,可以以简单、可靠的方式进行大数据流的处理。

特点:

Storm的优点:

简单的编程模型:类似于MapReduce降低了并行批处理复杂性,Storm降低了实时处理的复杂性。

语言无关:Storm的消息处理组件可以用任何语言来定义。默认支持Clojure、Java、Ruby和Python。要增加对其他语言的支持,只需实现一个简单的Storm通信协议即可。

容错性:如果在消息处理过程中出了一些异常,Storm会重新调度出问题的处理逻辑。

可伸缩性:Storm集群可以方便地扩展到数千个节点。

保证无数据丢失:Storm保证每个消息都会被处理,并且在处理过程中不会丢失任何数据。

总的来说,Storm具有高效的分布式计算能力、简单易用、可伸缩性、容错性等优点,但同时也有一些缺点,例如需要大量的资源进行计算和存储,而且速度过快可能会造成延迟,甚至可能发生超时等问题。

Storm和Hadoop有什么区别:

数据来源:

Hadoop通常处理的是TB级别的历史数据,这些数据存储在HDFS(Hadoop分布式文件系统)上。而Storm则主要处理实时新增的数据,对于每一笔新数据,Storm都可以进行实时处理。

处理过程:

Hadoop的处理过程通常分为MAP阶段和REDUCE阶段。在Storm中,处理流程是由用户定义的,流程中可以包含多个步骤,每个步骤可以是数据源(SPOUT)或处理逻辑(BOLT)。

是否结束:

Hadoop的处理任务通常会有一个结束状态,即当所有数据都处理完毕后,任务就会结束。而Storm则没有结束状态,它的处理流程会一直持续运行,直到有新的数据进入并触发新的处理过程。

处理速度:

由于Hadoop需要处理大量的历史数据,因此其处理速度相对较慢。而Storm由于只需要处理新增的某一笔数据,因此可以做到处理速度很快。

适用场景:

Hadoop通常用于处理批量数据,对于时效性要求不高。而Storm则主要用于处理实时新增的数据,强调处理的时效性。

计算方式:

Storm是内存级计算,数据直接通过网络导入内存,因此处理速度更快。磁盘访问延迟约为内存访问延迟的75000倍。

在需要处理大量历史数据时,使用Hadoop更为合适;而在需要处理实时新增的数据时,Storm则更具优势。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值