主页 > 新闻资讯 > Flink Spark对比:大数据框架Flink与Spark比较

Flink Spark对比:大数据框架Flink与Spark比较

作者:张老师 浏览次数: 2020-02-17 18:21
在大数据领域,大数据计算框架其实不算少了,除了早期的Hadoop之外,不少的后起之秀也在不断涌现,比如说Flink、Spark、Storm等,各自在大数据市场上占有一席之地,发挥着自己的作用。今天我们以Flink Spark为例,来做一个简单的对比。

总的来说,Flink Spark都是基于分布式架构来处理数据,主要的区别,则是在具体的数据计算任务当中,采取的计算方式不同。

Flink Spark

Spark基于内存进行迭代计算,能够同时支持批处理和流计算,计算速度能够比Hadoop的MapReduce框架快10-100倍,这是怎样的一个提升?同样的程序,在Spark上运行相比早期的Hadoop MapReduce,最高能够快上100倍,大大提升了计算效率。

而Flink,同样也是后起之秀,相对于Spark的批处理和流计算,再次实现性能的提升。Flink支持基于数据流的有状态计算,实现真正意义上的实时数据流计算,针对于现阶段的新增大数据来说,能够极快地完成实时数据流的处理。

从编程模型上来说,Spark是一站式的分布式计算引擎,能够支持批处理、流计算、机器学习以及图计算。Spark是核心模型,Spark SQL模块用于处理结构化数据,支持交互式SQL、DataFrame API以及多种语言支持;Spark Streaming基于微批(micro batch)处理数据。

而Flink,同样提供多种编程模型,支持从流计算到批处理,再到结构化数据处理以及机器学习、图计算等。DataStream API/DataSet API是Flink核心的编程模型,分别面向流处理与批处理,供大部分业务逻辑处理使用。

而在流处理上,Flink是真正意义上的流处理引擎,而Spark在流处理方面支持Spark Streaming和Structured Streaming(2.x)。

Flink本质上就是一个流处理引擎,基于消息事件驱动,并引入了状态管理,因此能够对数据流进行有状态的(Stateful)计算。Flink的设计思想是把批当作一种有限的流,这样在流处理过程中也能够发挥批处理的特性,实现了批流一批化。

而SparkStreaming流处理的机制是将源源不断的流式数据按照一定时间间隔,分隔成一个一个小的batch批次,然后经过Spark引擎处理后输出到外部系统。实际上是微批操作,相比于Flink来说存在一定的局限。

关于Flink Spark两个框架的对比,相信大家看完以上的内容也有了一个基础的认识。同样作为分布式处理框架的Flink和Spark,两者在批处理和流处理上的逻辑是不一样的,也因此造成了流处理和批处理上的不同表现。成都加米谷大数据,专业大数据培训机构,大数据开发培训班每月开班中,课程详情可联系客服了解!
热点排行
推荐文章
立即申请>>