一、目的
在本文中,我们将对 Apache Hadoop、Spark、 Flink三者之间的功能进行比较。它们都是大数据处理技术,以各种特色和优势迅速占领了IT大数据处理市场。本文您将了解Spark所针对的Hadoop的局限性以及由于 Spark的缺点而产生Flink数据处理引擎。因此,让我们开始Hadoop vs Spark vs Flink吧。
Hadoop vs Spark vs Flink –大数据框架比较
二、Apache Hadoop,Spark和Flink之间的比较
1. Hadoop vs Spark vs Flink –数据处理
- Hadoop: 专为批处理而构建的Apache Hadoop。它一次将大量数据集进行输入,进行处理并产生结果。批处理在处理大量数据时非常稳定。由于数据的大小和系统的计算能力有关,输出会产生延迟。
- Spark:Apache Spark也是Hadoop生态系统的一部分。 它也是一个批处理系统,但它也支持流处理。
- Flink:Apache Flink为流和批处理提供了一个运行时。
2. Hadoop vs Spark vs Flink –流引擎
- Hadoop: Map-reduce是面向批处理的处理工具。它一次将大量数据集输入到输入中,进行处理并产生结果。
- Spark: Apache Spark Streaming以微批处理数据流。每个批次包含在该批次期间到达的事件的集合。但是对于我们需要处理大量实时数据流并实时提供结果的业务而言,这还不够。
- Flink: Apache Flink是真正的流引擎。它使用流来处理工作负载:流,SQL,微批处理和批处理。批处理是流数据的有限集合。
3. Hadoop vs Spark vs Flink –数据流
- Hadoop: MapReduce计算数据流没有任何循环,这是一个阶段链。在每个阶段,都是使用上一阶段的输出作为本阶段的输入。
- Spark:尽管机器学习算法是循环数据流,但Spark将其表示为 (DAG) 直接非循环图 或 有向无环图。
- Flink: Flink采用与其他方法不同的方法。它在运行时受控循环依赖图。这有助于以非常有效的方式表示机器学习算法。
4. Hadoop vs Spark vs Flink –计算模型
- Hadoop: MapReduce采用了面向批处理的模型。批处理静态数据。它一次要处理大量数据,对其进行处理,然后将其输出。
- Spark: Spark采用了微批处理。微批处理本质上是一种“先收集再处理”的计算模型。
- Flink: Flink采用连续流式流传输模型,实时对数据进行处理,而不会在收集数据或处理数据时出现任何延迟。
5. Hadoop vs Spark vs Flink –性能
- Hadoop: Apache Hadoop仅支持批处理。它不处理流数据,因此与Hadoop,Spark和Flink相比,性能会降低。
- Spark:虽然Apache Spark具有出色的社区背景,现在也被认为是最成熟的社区。但是它的流处理效率不如Apache Flink,因为它使用微批处理。
- Flink: 与其他任何数据处理框架相比,Apache Flink的性能都非常出色。Apache Flink使用闭环迭代,当我们比较Hadoop,Spark和Flink时,它们可使机器学习和图形处理更快。
6. Hadoop vs Spark vs Flink –内存管理
- Hadoop: 它提供可配置的内存管理。您可以动态或静态地执行此操作。
- Spark: 它提供可配置的内存管理。从Spark 1.6开始已朝着自动进行内存管理的方向发展。
- Flink: 提供自动内存管理。它具有自己的内存管理系统,与Java的垃圾回收器分开。
7. Hadoop vs Spark vs Flink –容错
- Hadoop: MapReduce具有高度的容错能力。如果Hadoop发生任何故障,则无需从头开始重新启动应用程序。