Scala 使用spark作为应用服务器?

Scala 使用spark作为应用服务器?,scala,apache-spark,application-server,Scala,Apache Spark,Application Server,我们有一个复杂的财务/投资组合分析系统,我们希望利用Spark 与其让应用程序提交执行计算的独立JAR,然后从SQL中检索数据,不如让整个应用程序作为Spark驱动程序运行,以便从主应用程序无缝访问Spark的结果,这有多可行 这是Spark的推荐使用案例吗?这种方法的潜在缺点是什么?是否会对性能或延迟产生影响?只要您拥有集群,并且不介意在无需处理的情况下持有集群,就可以了 您可以通过编程方式设置spark上下文,并让它一直运行 一切都将是一个长时间运行的应用程序,使用一些固定资源 需要担心的事

我们有一个复杂的财务/投资组合分析系统,我们希望利用Spark

与其让应用程序提交执行计算的独立JAR,然后从SQL中检索数据,不如让整个应用程序作为Spark驱动程序运行,以便从主应用程序无缝访问Spark的结果,这有多可行


这是Spark的推荐使用案例吗?这种方法的潜在缺点是什么?是否会对性能或延迟产生影响?

只要您拥有集群,并且不介意在无需处理的情况下持有集群,就可以了

您可以通过编程方式设置spark上下文,并让它一直运行

一切都将是一个长时间运行的应用程序,使用一些固定资源

需要担心的事情:

  • 如果spark死亡,这将如何影响您的服务器

  • 若驱动程序内存不足,它将压坏您的服务器


如果您对上述问题有答案,我看不出有什么根本性的错误。

不可行,这是对Spark的浪费。您应该看看Spark Streaming——您可以以近乎实时的方式进出Spark。@DavidGriffin、Spark Streaming和Spark有不同的用途。如果OP的应用程序需要Spark,他为什么要看Spark流呢?因为它们之间的区别正是询问者所要寻找的——能够快速地从Spark中获取数据,以便回退应用服务器。否则,您可以使用Spark流做与使用Spark完全相同的事情。我在流媒体中使用
DataFrames
,我使用
GraphX
,我甚至开始在Spark流媒体应用程序中使用
GraphFrames
。这是一个合乎逻辑的建议,因为提问者想要什么。@DavidGriffin,我明白你的意思,但我对这个问题的理解不同。比如说,您有1TB的日志文件,并且希望使用Spark对它们运行不同的查询。您可以让驱动程序为此类查询提供API。使用spark streaming,这是一种完全不同的方法,您还需要一些OLAP DB作为中间件来对其运行查询。特别是“金融应用程序”,它意味着事务处理而不是日志文件分析。可能是从日志文件中提取的事务细节记录,但本质上是事务性的。“金融应用服务器”向我尖叫OLTP,而不是OLAP。当然,这已经足够了,至少有理由看看Spark流媒体。这些都是值得担心的大问题!哦,是的。但它们是围绕着它们的方式。我不会亲自去做。我喜欢把事情孤立起来。