在大数据计算领域,先后出现了Hadoop、Spark、Storm、Flink等多个计算框架,并且每每当一个新兴计算引擎出现,大家就忍不住拿来与早期的计算引擎进行对比。然后就会出现诸如Flink会取代Spark吗,Flink和Spark哪个好等等的问题讨论。今天我们就来聊聊大数据框架之间的竞争。
作为目前应用最广泛的大数据框架之一,Spark一直以来是受到多方的青睐的,而随着2015年Flink框架的出现,就开始出现了Flink会取代Spark等等的声音,但是事实真的是这样的吗?
Spark最初可以说是作为Hadoop的补充而出现的,补足了Hadoop在实时数据处理这一块的不足。但是Spark并没有就此止步,而是一直在更新和优化。早期的Spark采取的是RDD数据模型,而在随后的2.X版本中,Spark又开始摒弃RDD,转而采取Spark SQL的Dataset作为统一的数据模型,希望能够构建更加高效的计算框架。
得益于Spark一开始采用的RDD数据模型,在很长一段时间内,Spark高效灵活的编程方式,并且基于内存计算,使用统一的引擎进行批处理、流处理以及交互分析,使得Spark在大数据处理上获得明显的优势。
但是在这些优势存在的同时,Spark也并非完美,在流处理上依然存在缺陷。因为Spark Streaming是准实时的,数据计算处理的方式是微批处理模型。在动态调整、事物机制、延迟性、吞吐量等方面并不优秀。
而这就给了Flink发展的机会,随着越来越多的公司开始发现,对于流数据处理的需求在不断增高,如网络故障检测、欺诈行为检测等,需要的是真正的实时流数据处理。
Flink可以说是为流处理而生,采用了基于操作符的连续流模型,对无界和有界数据流进行有状态计算。流可以是无边界的无限流,即一般意义上的流处理。也可以是有边界的有限流,这样就是批处理。
Flink会取代Spark吗?从目前的趋势来看,答案是未必。基于流处理,Spark也开发了Structured Streaming Programming,与Flink竞争,在流处理上,Spark同样在不断成长。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。