我已经使用Apache Spark Scala超过5年了(学术和专业经验).我总是发现Spark / Scala是用于构建任何类型的批处理或流式ETL / ELT应用程序的强大组合之一.
但最近,我的客户决定在我们的两个主要管道中使用Java Spring Batch:
>从MongoDB中读取 – >业务逻辑 – >写入JSON文件(~2GB | 600k行)
>阅读Cassandra – >业务逻辑 – >写JSON文件(~4GB | 2M行)
这个企业级决策令我感到非常困惑.我同意业内有更多的思想,但我无法理解采取这一行动的必要性.
我的问题是:
>有人比较过Apache Spark和Java Spring Batch之间的表现吗?
>使用Spring Batch而不是Spark有什么好处?
>与Apache Spark相比,Spring Batch是“真正分布式的”吗?我在offcial docs遇到了chunk(),partition等方法,但我并不相信它真正的分布式.在所有Spring Batch在单个JVM实例上运行之后.不是吗???
我无法绕过这些.所以,我想使用这个平台进行Spring Batch和Apache Spark之间的公开讨论.
解决方法:
作为Spring Batch项目的领导者,我相信你会理解我有一个特定的观点.但是,在开始之前,我应该说我们所讨论的框架是针对两个非常不同的用例而设计的. Spring Batch旨在处理JVM上的传统企业批处理.它旨在应用在企业批处理中常见的易于理解的模式,并使它们在JVM的框架中方便.另一方面,Spark专为大数据和机器学习用例而设计.与传统的企业批处理系统相比,这些用例具有不同的模式,挑战和目标,这反映在框架的设计中.话虽这么说,这是我对你的具体问题的答案.
有人比较过Apache Spark和