Apache Beam支持多个运行程序后端,包括Apache Spark和Flink。我熟悉Spark / Flink,并试图了解Beam用于批处理的优点/缺点。
看一下Beam的字数示例,感觉它与本机Spark / Flink等效项非常相似,也许语法稍微冗长。
我目前看不到选择Beam代替Spark / Flink来实现此任务有什么好处。到目前为止,我只能做的观察:
- 优点:不同执行后端的抽象。
- 缺点:这种抽象是以降低对Spark / Flink中确切执行的内容的控制为代价的。
是否有更好的示例来突出Beam模型的其他优点/缺点?是否有失去控制如何影响性能的信息?
请注意,我并不是在要求流传输方面的差异,该问题已部分涵盖在本文中,并在本文中进行了概述(由于Spark 1.X已过时)。