【问题标题】:Use spark RDD as a source of data in a REST API使用 spark RDD 作为 REST API 中的数据源
【发布时间】:2017-01-19 17:59:34
【问题描述】:

有一个在 Spark 上计算并存储到 Cassandra 的图。
还有一个 REST API,它有一个端点来获取带有边和边的边的图节点。
这个二度图可能包含多达 70000 个节点。
目前使用 Cassandra 作为数据库,但是从 Cassandra 中按键提取大量数据需要大量时间和资源。
我们尝试了 TitanDB、Neo4j 和 OriendDB 来提高性能,但 Cassandra 的效果最好。

现在有另一个想法。在 API 服务中持久化 RDD(或者可能是 GrapgX 对象),并在 API 调用中从持久化的 RDD 中过滤必要的数据。
我猜它会在 RDD 适合内存时运行得很快,但是在它缓存到磁盘的情况下,它会像完全扫描一样工作(例如完全扫描 parquet 文件)。 我也希望我们会面临这些问题:

  • spark 内存泄漏;
  • 更新此 RDD(取消保留以前的,读取新的并保留新的)将需要停止 API;
  • 并发使用此 RDD 需要手动管理 CPU 资源。

有人有这样的经历吗?

【问题讨论】:

    标签: api apache-spark graph graph-databases


    【解决方案1】:

    Spark 不是存储引擎。除非您每次都会处理大量数据,否则您应该考虑:

    【讨论】:

      猜你喜欢
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 2020-01-25
      • 2018-06-14
      相关资源
      最近更新 更多