ApacheSpark是目前应用最广泛、最流行的大数据计算平台之一,在2.X版本中,ApacheSpark已经开始摒弃RDD的数据模型,采用SparkSQL的Dataset作为统一的数据模型来构建更加高效的计算框架。然而,2015年成为Apache顶级项目的ApacheFlink却被很多人认为是未来最有可能取代Spark的新一代大数据计算引擎。
复杂的Hadoop生态除此之外,还有个重要的因素是在大数据生态的多样性。
尽管Spark在批处理上有很大优势,但是在流处理方面依然有很大的缺陷。首先,SparkStreaming是准实时的,它处理的方式是微批处理模型。在动态调整、事物机制、延迟性、吞吐量等方面并不优秀。但是由于Spark位于Spark生态中,它可以很好的与其他应用结合,因此使用的人也不少。然而越来越多的公司发现,很多场景需要对流数据进行处理,流数据处理的价值也越来越高。如网络故障检测、欺诈行为检测等。
Flink的基本数据模型是数据流,及事件(Event)的序列。数据流作为数据的基本模型可能没有表或者数据块直观熟悉,但是可以证明是完全等效的。流可以是无边界的无限流,即一般意义上的流处理。也可以是有边界的有限流,这样就是批处理。
而Spark现在也提供了StructuredStreamingProgramming,目的也是要和Flink竞争,防止被踢出局。同样的,有Spark的经验,Flink也提供了多个基于统一框架的高层次组件。
领取专属 10元无门槛券
私享最新 技术干货