Apache spark Spark可以用于实时交互应用程序吗?

Apache spark Spark可以用于实时交互应用程序吗?,apache-spark,analytics,Apache Spark,Analytics,我们有一个系统,其中包含一个计算报告的数据管道,以及一个可以进行特殊查询的UI层,在查询之后对我们的数据集应用一些特定的计算。我正在考虑将现有的批处理数据处理层迁移到Spark,但我对UI应用层不太确定 棘手的部分是,来自UI的请求还需要对数据集应用某些函数。我还没有找到任何查询引擎,比如Elasticsearch,可以从查询结果中应用自定义函数。所以我想知道让UI层直接触发Spark是否是个好主意,假设源数据已经缓存在Spark会话中 因此,我的问题是: Spark是实时交互应用程序的正确解

我们有一个系统,其中包含一个计算报告的数据管道,以及一个可以进行特殊查询的UI层,在查询之后对我们的数据集应用一些特定的计算。我正在考虑将现有的批处理数据处理层迁移到Spark,但我对UI应用层不太确定

棘手的部分是,来自UI的请求还需要对数据集应用某些函数。我还没有找到任何查询引擎,比如Elasticsearch,可以从查询结果中应用自定义函数。所以我想知道让UI层直接触发Spark是否是个好主意,假设源数据已经缓存在Spark会话中

因此,我的问题是:

  • Spark是实时交互应用程序的正确解决方案吗?有哪些替代方案
  • 我希望UI应用程序在Spark cluster之外运行。那个么,是否有任何框架可以用于外部服务以触发Spark job?或者利用现有的Spark会话

如果您有任何建议,我将不胜感激。

尽管这是一个基于意见的问题,但我想根据我的观察回答

Spark是实时交互应用程序的正确解决方案吗? 有哪些替代方案

直接从内存中的spark表进行查询是个坏主意。。在多个并发用户的情况下,您可能会面临请求排队等问题。。火花熄灭,用户界面不可用。。基于LRU等从内存中逐出的内存中的spark表

存储数据是适合您需要的持久存储。。ES、hive、Cassandra、RDBMS等。。 如果在数据存储顶部需要SQL,请检查PrestoSQL

我希望UI应用程序在Spark cluster之外运行。 那么,是否有任何框架可供外部服务使用 触发火花工作?或者利用现有的Spark会话


我们使用spark作业服务器将外部UI连接到现有spark群集。您可以探索相同的或可能是apache livy。

在我看来,spark不适用于交互式UI。如果数据是静态的,则有一点可能会使用类似于how-like的缓存。。