首页 > 解决方案 > Spark可以用于实时交互应用吗?

问题描述

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

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

所以我的问题是:

任何建议将不胜感激。

标签: apache-sparkanalytics

解决方案


虽然这是基于意见的问题,但我想根据我的观察来回答。

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

直接从内存中的火花表查询将是一个坏主意。在多个并发用户的情况下,您可能会遇到请求排队等问题。火花下降并且 UI 不可用。火花内存表被从内存中逐出基于LRU等...

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

我想让 UI 应用程序在 Spark 集群之外运行。那么是否有任何框架可以用于外部服务来触发 Spark 作业?或者利用一些现有的 Spark 会话?

我们有外部 UI 使用 spark-job-server 连接到现有的 spark 集群。你可以探索同样的,或者可能是 apache livy。


推荐阅读