Hadoop学习可以说是大数据学习当中的重难点,很多同学都在Hadoop的学习当中存在各种各样的疑问。很多同学都问过这样一个问题,针对于大数据处理,有Hadoop、Spark、Flink等,这三者有何不同,下面就为大家分享关于Hadoop,Spark和Flink之间的比较。

总体来说,Hadoop,Spark和Flink在数据处理上各有其优势。Hadoop对大批量数据的处理很有一套,但是由于是离线离线,所以输出结果会产生延迟;Spark作为后来者,针对Hadoop离线处理产生数据延迟这一点进行补充,开始了基于内存计算的实时处理;而Flink,则是在数据的流处理和批处理上进一步进行补足。
 

flink的关系 hadoop 跟 hadoop和flink_spark

Hadoop vs Spark vs Flink–流引擎

Hadoop完成数据处理任务,主要通过MapReduce,MapReduce的核心原理是批处理,将大量数据集进行并行处理,并产生结果。

Spark当中,Spark Streaming则是以微批处理数据流,每个批次包含在该批次期间到达的事件的集合,但是在较大规模的数据处理上就会显得吃力。

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

Hadoop vs Spark vs Flink–数据流

Hadoop的MapReduce,在进行数据计算时,是一个承前启后的阶段链,使用上一阶段的输出向前发展,并为下一阶段产生输入。

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

Flink作为流引擎,在运行时支持受控循环依赖图,所以在后续的机器学习算法上还有更大的空间。

Hadoop vs Spark vs Flink–计算模型

Hadoop的MapReduce,计算模型遵从批处理原则,对于静态数据进行批量处理,一次性输入,一次性输出。

Spark则采用的是微批处理,先收集再处理,所以其实算不上真正意义上的没有延迟,只是相对于MapReduce,减少了大部分的延迟时间。

Flink采用连续流式流传输模型,实时对数据进行处理,而不会在收集数据或处理数据时出现任何延迟,可以说是实现了真正意义上的实时在线处理数据。

以上就是今天为大家带来的关于Hadoop,Spark和Flink之间的比较分享。看完我们会发现,在大数据处理当中,这些计算框架各自有擅长的地方,也各有不足之处,结合起来使用才能真正实现对大数据处理需求的更好满足。