首页>技术分享>博客详情
流式计算的三种框架:Storm、Spark和Flink
我们知道,大数据的计算模式主要分为批量计算(batch computing)、流式计算(stream computing)、交互计算(interactive computing)、图计算(graph computing)等。其中,流式计算和批量计算是两种主要的大数据计算模式,分别适用于不同的大数据应用场景。

对于数据规模大、计算模型复杂、时效性要求不高的数据,我们可以使以先存储后计算,采用批量计算;而对于时效性要求严格,单次计算数据量相对小的数据,我们无需存储,可以直接进行数据计算,采用流式计算。

目前主流的流式计算框架有StormSpark StreamingFlink三种,其基本原理如下:

Apache Storm


Storm中,需要先设计一个实时计算结构,我们称之为拓扑(topology)。之后,这个拓扑结构会被提交给集群,其中主节点(master node)负责给工作节点(worker node)分配代码,工作节点负责执行代码。在一个拓扑结构中,包含spout和bolt两种角色。数据在spouts之间传递,这些spouts将数据流以tuple元组的形式发送;而bolt则负责转换数据流。

Apache Spark


Spark Streaming,即核心Spark API的扩展,不像Storm那样一次处理一个数据流。相反,它在处理数据流之前,会按照时间间隔对数据流进行分段切分。Spark针对连续数据流的抽象,我们称为DStream(Discretized Stream)。 DStream是小批处理的RDD(弹性分布式数据集), RDD则是分布式数据集,可以通过任意函数和滑动数据窗口(窗口计算)进行转换,实现并行操作。

 Apache Flink


针对流数据+批数据的计算框架。把批数据看作流数据的一种特例,延迟性较低(毫秒级),且能够保证消息传输不丢失不重复。



Flink创造性地统一了流处理和批处理,作为流处理看待时输入数据流是无界的,而批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。Flink程序由StreamTransformation这两个基本构建块组成,其中Stream是一个中间结果数据,而Transformation是一个操作,它对一个或多个输入Stream进行计算处理,输出一个或多个结果Stream

这三种计算框架的对比如下:



 参考文章:

Streaming Big Data: Storm, Spark and Samza




先荐是一款赋能媒体的AI产品,是集内容上传、内容管理、内容分发、推荐干预、前端渲染于一体的一站式推荐服务可视化平台,支持PC、WAP、APP全平台接入,帮助媒体从0到1搭建推荐系统,显著提升用户活跃、留存、观看时长等重要业务指标,在减少技术成本投入的同时,大幅提高媒体运营效率,从而实现业务智能化转型。目前已服务人民日报、环球网、花瓣网、果壳网、段友、36氪、简书等三百余家内容平台,其中在环球网web端的兴趣推荐项目上,实现了点击率58%的提升,同时访问量和营收分别增长了69%、20%。
上一篇流式计算的应用特征
下一篇 什么是流式计算
猜你喜欢
09-09

什么是流式计算

图片
08-28

用于推荐系统评估的概念与指标

图片
09-11

流式计算的应用特征

图片
08-14

推荐系统:协同过滤及其利弊

图片
09-16

大数据流式计算存在的挑战

图片