【发布时间】:2017-12-11 22:58:11
【问题描述】:
我有一个要求,我想缓存一个数据集,然后通过在该数据集上并行触发“N”个查询来计算一些指标,所有这些查询都会计算相似的指标,只是过滤器会改变并且我想运行这些查询是并行的,因为响应时间很重要,而且我要缓存的数据集的大小总是小于 GB。
我知道如何在 Spark 中缓存数据集,然后随后对其进行查询,但是如果我必须对同一个数据集并行运行查询,我该如何实现呢?引入 alluxio 是一种方式,但在 Spark 世界中我们可以通过其他方式实现同样的效果吗?
例如使用Java,我可以将数据缓存在内存中,然后通过使用多线程我可以实现相同的效果,但是如何在Spark中做到这一点?
【问题讨论】:
-
到目前为止您尝试过什么?你必须先尝试,然后才寻求帮助
-
正如我在问题中提到的,我知道如何缓存数据集并在此之上执行查询,如果我知道方法,我需要一些关于如何在 Spark 中并行实现相同目标的指导/concept 使用,我早就这样做了
-
默认情况下:查询可以在分布式数据集上并行运行,查询可以串行运行。现在,如果您想并行运行多个查询,那么您将不得不使用线程概念。 :)
-
现在试试这个russellspitzer.com/2017/02/27/Concurrency-In-Spark,很快就会发布我的观察结果
标签: scala hadoop apache-spark