可靠的企业战略,数字化转型,智能化转型和企业架构智库

【大数据架构】Apache Flink和Apache Spark—比较指南

1. 目标

在本教程中,我们将讨论Apache Spark和Apache Flink之间的比较。Apache spark和Apache Flink都是用于大规模批处理和流处理的开源平台,为分布式计算提供容错和数据分布。本指南提供了Apache Flink和Apache Spark这两种蓬勃发展的大数据技术在特性方面的明智比较。

Apache Flink vs Apache Spark - A comparison guide

2. Apache Flink vs Apache Spark

Features Apache Flink Apache Spark
Computation Model Flink基于基于操作器的计算模型。 Spark是基于微批处理模式的。
Streaming engine Apache Flink为所有工作负载使用流:流、SQL、微批处理和批处理。批处理是流数据的有限集。 Apache Spark对所有工作负载使用微批。但对于需要处理大量实时数据流并实时提供结果的用例来说,这是不够的。
Iterative processing Flink API提供了两个专用的迭代操作Iterate和Delta Iterate。 Spark基于非本地迭代,在系统外部实现为规则的for - loop。
Optimization Apache Flink附带了一个独立于实际编程接口的优化器。 在Apache中,Spark作业必须手动优化。
Latency 通过最小的配置努力,Apache Flink的数据流运行时实现了低延迟和高吞吐量。 与Apache Flink相比,Apache Spark具有较高的延迟。
Performance 与其他数据处理系统相比,Apache Flink的总体性能非常出色。Apache Flink使用本地闭环迭代操作符,这使得机器学习和图形处理更快。 尽管Apache Spark拥有优秀的社区背景,现在它被认为是最成熟的社区。但是它的流处理效率并不比Apache Flink高,因为它使用微批处理。
Fault tolerance Apache Flink遵循的容错机制是基于Chandy-Lamport分布式快照的。该机制是轻量级的,从而在保持高吞吐率的同时提供了强大的一致性保证。 Spark 流恢复丢失的工作,并提供精确的一次性语义开箱即用,没有额外的代码或配置。(请参阅火花容错特征指南)
Duplicate elimination Apache Flink一次处理每条记录,因此消除了重复。 Spark还精确地处理每条记录一次,因此消除了重复。
Window Criteria Flink具有基于记录或任何自定义用户定义的窗口条件。 Spark有一个基于时间的窗口条件
Memory -Management Flink提供自动内存管理。 Spark提供可配置的内存管理。Spark 1.6, Spark也已经转向自动化内存管理。
Speed Flink以闪电般的速度处理数据 Spark的处理模型比Flink慢

3.结论

Apache Spark和Flink都是吸引业界关注的下一代大数据工具。两者都提供与Hadoop和NoSQL数据库的本地连接,并且可以处理HDFS数据。两者都是几个大数据问题的好解决方案。但由于其底层架构,Flink比Spark更快。Apache Spark是Apache存储库中最活跃的组件。Spark拥有非常强大的社区支持和大量的贡献者。Spark已经部署在生产环境中。但就流功能而言,Flink要比Spark好得多(因为Spark以微批的形式处理流),并且对流有本地支持。Spark被认为是大数据的3G,而Flink被认为是大数据的4G。

 

原文:https://data-flair.training/blogs/comparison-apache-flink-vs-apache-spark/

本文:http://jiagoushi.pro/node/1121

讨论:请加入知识星球【首席架构师圈】或者小号【jiagoushi_pro】