使用spark RDD作为REST API

时间:2017-01-19 07:30:24

标签: api apache-spark graph graph-databases

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

现在有另一个想法。在API服务中持有RDD(或可能是GrapgX对象),并在API调用中过滤来自持久RDD的必要数据。
我猜它会在RDD适合内存的情况下快速工作,但在它缓存到磁盘的情况下,它将像全扫描一样工作(例如全扫描镶木地板文件)。 我还希望我们能够面对这些问题:

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

有人有过这样的经历吗?

1 个答案:

答案 0 :(得分:0)

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