大数据Spark和Flink的区别在那里?
来源:海牛大数据 时间:2020-07-09 15:15:10 编辑:简单
在大数据流式计算这个领域,常常被大家拿来做比较的,就是Spark和FLink。这两者在大数据流式处理上,都具有强大的优势,两者先后出现,形成竞争态势。那么在这两个计算框架上,该怎么去做取舍呢?大数据Spark和Flink的区别在那里?
Spark的风靡,大概是从2014年开始的,因为之前的Hadoop框架,在数据处理上的硬伤就是流处理,对于离线数据处理有极大的优势,但是随着流处理的需求出现,Hadoop在一块还有所欠缺。而Spark就是在这样的背景下出现的,提供一个统一的引擎来完成各种常见数据处理场景。
因此,Spark在批处理、流处理、交互式查询和机器学习等几个场景的应用上,都具有很不错的应用前景。
而Flink,则是在Spark出现之后不久,作为流处理的优势竞争对手而出现。针对于Spark早期在实时流处理等场景中面临可用性问题,Flink做了进一步优化,定义为支持各种场景的高级流处理引擎。
Spark与Flink在数据模型和处理模型上有明显的不同。
Spark使用弹性分布式数据集RDD(Resilient Distributed Dataset),通常用于分布式共享内存或完全虚拟化,当下游处理完全在本地时,可以对一些中间结果进行优化和省略,节省不必要的输入和输出,提升性能。
而Flink基础数据模型由数据流组成,例如事件序列。事件在一个节点上处理后的输出可以发送到下一个节点进行即时处理,这样,执行引擎就不会有任何的延迟,所以数据处理的效率和速度也得到较大的提升。
但是在数据处理DAG执行上,Spark与Flink区别就体现出来了。Flink一个节点到下一个节点之间,即时进行,随意各个节点需要同时运行;而Spark,上游阶段完成微批量处理之后,下游阶段才开始处理其输出,是前后相继的关系。
海牛大数据专注于大数据课程开发及培训,"因为专注,所以专业"。如果您想要了解更多大数据的知识,您可以浏览我们的网站,我们会为您提供更专业服务。