本文主要是介绍Flink vs Spark (4) Apache Beam,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
蔡老师的大数据课里面提到MapReduce的缺点是(1)缺少对数据处理流程的管理定义,需要额外的MR orchestration,造成FLOW维护困难 (2)性能配置太复杂,造成性能调优耗时特长。(3)不支持批流处理的合一。确实是一些很重要的问题。
现在新的工具平台,比如Spark,都有了DAG的概念,这个DAG能够形容这个FLOW,dataset的transform等等。Spark甚至能够采用Lazy的方法,先不做任何转换,而是等到action的时候,才从这个DAG来反推,做解题过程的优化。
Beam是Google捐献给Apache的项目,基于FlumeJava,Millwheel等。Beam其实把问题分解为模型定义和模型执行两个部分,而且模型执行还可以调用不同的引擎来执行。实际上解决了Orchestration模型的问题。通过定义一个Beam model(pipeline),应用开发者可以不关心底层的实现。
PCollection和Spark的RDD类似,一个PCollection可以被多个Transform来处理,就形成了Fork,出现多个PCollection作为结果。
不知道Beam这种试图定义一切model的方法,虽然有了Portability,在执行起来,会不会没有native spark写的程序执行快,这样就部分失去了好处。
这篇关于Flink vs Spark (4) Apache Beam的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!