【问题标题】:What software should I use for graph distributed storing and processing?我应该使用什么软件来进行图形分布式存储和处理?
【发布时间】:2018-05-28 14:39:15
【问题描述】:

问题简述:

  1. 有大量 JSON 格式的输入数据。就像现在它大约 1 Tb,但它会增长。有人告诉我,我们将拥有一个集群。
  2. 我需要处理这些数据,用它制作图表并将其存储在数据库中。所以每次我得到一个新的 JSON 时,我都必须遍历数据库中的整个图来完成它。
  3. 稍后我将在浏览器中创建一个瘦客户端,我将在其中可视化图形的某些部分,在其中搜索,遍历它,进行一些过滤等。所以这个系统的负载不高,只是大量的处理和数据。

我在分布式系统、NoSQL 数据库和其他类似“大数据”的东西方面没有经验。在我的小研究中,我发现它们太多了,现在我迷路了。

我现在的白板上有什么:

  1. Apache Spark 的 GraphX (GraphFrames) 用于在某些存储(HDFS、Cassanda、HBase 等)和处理器(Yarn、Mesos、Kubernetes 等)之上进行分布式计算。
  2. 一些图形数据库。我认为在 Neo4j 中使用 Cipher 或在 JanusGraph/TitanDB 中使用 Gremlin 之类的图形查询语言很好。 Neo4j 很好,但它只在 EE 中具有集群功能,我需要一些开源的东西。所以现在我考虑的是后者,默认情况下有 Gremlin + Cassandra + Elasticsearch。
  3. 也许我不需要这些,只需将图形作为邻接矩阵存储在 Postgres 等一些 RDBMS 中即可。
  4. 不知道我在 2 或 3 中是否需要 Spark。我需要它吗?

我的主管让我去看看 Elasticsearch。但我想我只能将它用作额外的全文搜索引擎。

感谢您的回复!

【问题讨论】:

    标签: database apache-spark graph neo4j distributed-computing


    【解决方案1】:

    让我们从几个后续问题开始:

    1. 1Tb 并不是一个庞大的数据量,如果这也是(接近)数据总量的话。是吗 ?您期望有多少新数据以及它将以什么速度到达。
    2. 如果每个 JSON 仅引用图表的一小部分,为什么必须遍历整个图表?要么是新数据,要么是现有数据的更新(您应该能够确定),不是吗?
    3. 是的,这就是您使用图形数据库的方式...

    其余的取决于您对 1) 的回答。如果我们谈论的是到达事件的 IOT 数量(每秒数万......持续),您可能需要 大数据 解决方案。如果没有,您的主要问题是完成初始负载并从那里轻松航行;-)。

    希望这会有所帮助。

    问候, 汤姆

    【讨论】:

    • 您好,谢谢您的回复!这很有帮助!我想你是对的,我不知何故得出了错误的结论。我不知道数据总量,但我怀疑它是否超过 100 Tb。关于传入数据的强度,它将非常低。所以我想我真的不需要 MapReduce 之类的东西,也许我应该尝试一下 graph db 就是这样。
    • 我认为我不会很快收到更多反馈,所以我会在一天结束前将您的回复标记为答复。
    • @GlebIgnatieff 我不能为你得出这个结论(那是固执己见的:-),但这里有几个注意点。 1) 初始负载的大小那么重要,事务更新的数量才是。 2) 如果大多数(如果不是全部)查询只命中数据库的一小部分并且 一小部分 保持大致相同的大小,那么数据库的大小不是那么重要不管整个数据库有多大。
    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 2011-12-30
    • 2020-09-23
    • 2019-07-02
    • 2011-11-11
    • 1970-01-01
    • 2013-06-02
    • 2011-01-28
    相关资源
    最近更新 更多