Hadoop、Spark、Flink三大框架对比

目前来说,大数据领域最为活跃的三个计算框架,当属Hadoop、Spark以及Flink这三者。三个框架在不同的大数据处理场景当中,表现各有优势,因此也常常被拿来做比较。今天我们也来做个Hadoop对比,看看Hadoop、Spark、Flink三大框架,各自的优势劣势如何。

Hadoop、Spark、Flink三大框架对比_第1张图片

1、数据处理对比

Hadoop专为批处理而生,一次将大量数据集输入到输入中,进行处理并产生结果。

Spark:定义是一个批处理系统,但也支持流处理。

Flink:为流和批处理提供了一个运行时。

2、流引擎对比

Hadoop:Hadoop默认的MapReduce,仅面向于批处理。

Spark:Spark Streaming以微批处理数据流,实现准实时的批处理和流处理。

Flink:Flink是真正的流引擎,使用流来处理工作负载,包括流,SQL,微批处理和批处理。

3、数据流对比

Hadoop:MapReduce计算数据流没有任何循环,每个阶段使用上一阶段的输出,并为下一阶段产生输入。

Spark:尽管机器学习算法是循环数据流,但Spark将其表示为(DAG)直接非循环图或有向无环图。

Flink:Flink在运行时支持受控循环依赖图,支持机器学习算法非常有效。

4、计算模型对比

Hadoop:MapReduce采用了面向批处理的模型,批处理静态数据。

Spark:Spark采用了微批处理。微批处理本质上是一种“先收集再处理”的计算模型。

Flink:Flink采用连续流式流传输模型,实时对数据进行处理,而不会在收集数据或处理数据时出现任何延迟。

5、性能对比

Hadoop:Hadoop仅支持批处理,不支持处理流数据,与Spark和Flink相比,性能会降低。

Spark:支持微批处理,但流处理效率不如Apache Flink。

Flink: Flink使用本机闭环迭代运算符,尤其在支持机器学习和图形处理方面,表现优异。

6、内存管理对比

Hadoop:提供可配置的内存管理,可以动态或静态地执行此操作。

Spark:提供可配置的内存管理,从Spark 1.6开始已朝着自动进行内存管理的方向发展。

Flink:有自己的内存管理系统,提供自动内存管理

你可能感兴趣的:(Hadoop、Spark、Flink三大框架对比)