【发布时间】:2020-05-23 00:36:11
【问题描述】:
我一直在阅读 Spark,并且对跨可扩展计算集群分配计算的能力非常感兴趣。我们有处理 AMQP 消息处理的生产流处理代码(用 Java 9 编写的 5K 行),我们希望在 Spark 集群中运行。
但是,我觉得我一定误解了 Spark 的基本前提。一方面,它运行 Java,我们应该能够用它运行我们的应用程序,但另一方面(从文档中)似乎(从文档中)所有代码都必须重写为 Spark API(使用 Dataframes/Datasets)。这是真的? Java 应用程序能否按原样与 Spark 一起使用,还是必须重写?这对我们来说似乎是一个主要限制,或者更确切地说是一个阻碍。
我认为,理想情况下,我们希望使用 Spark 来处理高级消息路由(使用结构化流 API),这会将消息传递给我们的 Java 应用程序来处理计算、数据库写入等。我们的代码是单类接口,Spark 可以将消息映射到该类实例。因此,可能会有很多很多实例在每个机器实例内并行处理消息并分布在整个集群中。
我错过了什么吗?
【问题讨论】:
标签: java apache-spark spark-streaming