【发布时间】:2015-07-02 12:40:16
【问题描述】:
我们引入了 Spark Cache 来在我们的产品中处理内存中的数据,因为在数据量巨大(BIG DATA)的情况下积极处理远程数据库过于耗时。
现在我们注意到,一旦将数据加载到 spark 中,响应速度会比直接查询原始源(远程数据库)更慢
我们正在使用 sparkSQL 来检索数据,并且相同的查询从远程数据库中返回的方式更早,因为同一台计算机上的单个节点的 Spark 缓存滞后了很长时间。
任何指导将不胜感激。
使用 Spark UI 快照的示例查询:
SELECT column1, SUM(column2) FROM tableName WHERE column2 > 200 GROUP BY column1 ORDER BY column1
数据100% 加载在 Spark 内存中。 See Image
从 Spark 加载结果最多需要 15 分钟。 See Image
Spark Cache 包含大约 50,000 条记录。并且测试查询的机器具有 16 个 CPU 内核和 64GB 内存。
我的问题是 50,000 条记录什么都不是,为什么它需要这么多分钟而不是几毫秒。每件事都在本地机器上完成。
【问题讨论】:
标签: java apache-spark apache-spark-sql