【发布时间】:2021-05-22 02:03:06
【问题描述】:
我们的 Apache Spark 数据库需要内存缓存来提高性能。我最近对 Apache Ignite 做了一些研究,我们决定使用 Ignite 作为Spark 的外部数据源,以下是我现在发现和困惑的:
-
钻研代码后发现Spark SQL会转化为Ignite SQL,然后查询会被发送到各个Ignite节点,由H2引擎在其上执行,是不是所有的数据都需要在Ignite缓存中,HDFS中的数据不会被命中? 我们的数据太大了,无法将它们全部加载到内存中,我们只能将其中一些加载到内存中,也许只能加载一些小表,如果查询没有命中缓存,客户端将转向 HDFS。 我的问题是:作为 Spark 的外部数据源,我们如何在一个 Spark SQL 中扫描来自 Ignite 和 HDFS 的所有数据? 如: SELECT person.name AS 人、年龄、city.name AS 城市、国家 FROM person JOIN city ON person.city_id = city.id 城市:所有数据都在内存中 person:只有一些数据在内存中,其中一些在 HDFS 中;甚至可能没有缓存在 Ignite 中。
-
我们Spark的版本是3.0,Ignite目前只支持2.4,不知道Apache Ignite支持Spark 3.0的计划是什么,您对我们系统支持Spark 3.0有什么建议? 重新实现为支持 2.4 所做的所有工作是个好主意吗? https://ignite.apache.org/docs/latest/extensions-and-integrations/ignite-for-spark/ignite-dataframe
感谢您的友好建议:)
【问题讨论】:
标签: apache-spark ignite