主页 > 新闻资讯 > 流式计算框架:Spark、Storm、Flink对比

流式计算框架:Spark、Storm、Flink对比

作者:张老师 浏览次数: 2020-02-17 17:38
随着大数据的持续发展,大数据处理趋势的重要发展就是走向流式处理,针对于新的发展趋势,也需要有新的计算引擎来支持。早期的Hadoop MapReduce在流式计算上表现不佳,而后起的Spark、Storm、Flink,都号称是流式计算框架,那么他们各自性能如何呢,今天我们来做个简单的对比。

流式计算框架

事实上,大数据计算发展趋势,包括批量计算、流式计算、交互计算、图计算等,这些都是现阶段大数据处理需要解决的问题,而其中尤其以流式计算和批量计算两者最重,并且也联系紧密。

Apache Spark

可以这么说,Spark框架就是为流式计算而设计的,其核心组件,Spark Streaming,正是基于流式计算来进行运算的。

Spark在处理数据流之前,会按照时间间隔对数据流进行分段切分。Spark针对连续数据流的抽象,我们称为DStream(Discretized Stream)。DStream是小批处理的RDD(弹性分布式数据集),RDD则是分布式数据集,可以通过任意函数和滑动数据窗口(窗口计算)进行转换,实现并行操作。

Apache Storm

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

Apache Flink

Flink可以说是针对流数据和批数据处理而设计的,在Flink框架当中,将输入数据流是看作是无界的,而批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。

Flink程序由Stream和Transformation这两个基本构建块组成,其中Stream是一个中间结果数据,而Transformation是一个操作,它对一个或多个输入Stream进行计算处理,输出一个或多个结果Stream。

总体来说,目前大数据领域的流式计算框架,Spark、Storm、Flink三者都占有一定的市场,作为企业还是要根据实际的数据处理需求来进行选择,但是在批处理+流处理上,Flink确实备受青睐。成都加米谷大数据,大数据知识分享,大数据培训班课程,更多详情可联系客服了解!
热点排行
推荐文章
立即申请>>