Gremlin - Girf - 图形? o titnadb

Gremlin - Giraph - GraphX ? On TitanDb

我需要一些帮助来确认我的选择...并了解您是否可以给我一些信息。 我的存储数据库是带有 Cassandra 的 TitanDb。 我有一个非常大的图表。我的目标是在后面的图上使用 Mllib。

我的第一个想法:将 Titan 与 GraphX 结合使用,但我没有发现任何东西或正在开发中...TinkerPop 尚未准备就绪。 所以我看看 Giraph。 TinkerPop,Titan 可以从 TinkerPop 与 Rexster 通信。

我的问题是: 使用 Giraph 有什么好处? Gremlin 似乎也有同样的想法并且是分布式的。

非常感谢你的解释。我想我不太明白 Gremlin 和 Giraph(或 GraphX)之间的区别。

祝你有愉快的一天。

  • Gremlin 是一种图形遍历语言,而 Giraph 或 Graphx 是图形处理系统。

我相信您是想了解 graphx 或 giraph 与 titan 之间的区别。更具体地说,当你的数据已经在图数据库中时,为什么还要使用图处理系统?

所以本质上就是图数据库和图处理系统的区别。

  • 当您的应用程序需要频繁查询数据时,图形数据库就是您的得力助手。例如。对于 facebook 类型的应用程序,给定一个用户 return 所有 his/her 朋友。这个适合图数据库,可以用gremlin查询。

  • 现在,如果你想计算每个用户在 facebook 中的排名,你需要 运行 整个图表的 pagerank 算法。换句话说,pagerank 算法会处理您的整个图表,然后 return 为您提供地图。这适用于图形处理系统。是的,您可以使用 gremlin 框架编写查询来执行此操作,但是 1. 它不会像 giraph 或 graphx 使用的底层预凝胶模型那样用户友好。 2.效率不高

总而言之,这实际上取决于您的应用程序。如果您认为您的应用程序就像查询。不要费心加载卸载到任何图形处理系统中。如果您认为您的应用程序更像是 pagerank(需要处理整个图)并且您有一个大图(至少 1M 边)。选择 giraph 或 graphx。

giraph 和 graphx 具有图形输入格式。您可以将数据转储到文件中的那种形式,并将其输入到这些系统之一,或者您可以编写自己的输入格式。

p.s。最好在 giraph graphx 中添加一种输入格式,它接受存储在 titan 中的数据。

有趣的问题。我在同一条轨道上。

首先是关于 MLlib 的问题。我假设您的意思是基于 Apache Spark MLlib, the machine learning (ML) implementation on top of Apache Spark. So my conclusion is: you want to run ML algorithms for purposes such as clustering and classification using the data in your Titan/Cassandra 的图形数据库。 请注意,您还可以使用 spidy 提到的 Page Rank 等图形处理算法来执行诸如在 Titan/Cassandra 图形数据库之上进行聚类之类的操作。换句话说:当您的起点是图形数据库时,您不需要机器学习来进行聚类。

Apache Spark MLlib 似乎是未来的证明并得到广泛支持,他们最近的公告是关于新的 ML 算法,尽管另一个 Apache ML 项目 Apache Mahout 在支持的 ML 算法数量方面更为成熟。 Apache Mahout 也采用了 Apache Spark 作为他们的数据存储层,因此我在这篇 post 中提到它。 除了内存计算之外,Apache Spark 还提供上述用于机器学习的 MLlib,Spark SQL which is like Hive on Spark, GraphX which is a graph processing system as explained by spidy and Spark Streaming 用于处理流数据。

我认为 Apache Spark 本身是一个逻辑数据层,表示为 Cassandra、Hadoop/Hcatalog 和 HBase 等存储层之上的 RDD(弹性分布式数据集)。 Apache Spark 提供了一个连接到 Cassandra 的连接器。注意 RDD 是 immutable,你不能使用 Spark 改变数据,你只能在 Spark 中处理和分析数据。 关于 Apache Spark 逻辑存储层 RDD:您可以将 RDD 与旧 SQL 时代的视图进行比较,RDD 为您提供 HBase 的 Cassandra 中的视图,例如 table。另请注意,Apache Spark 为 3 种开发环境提供了 API:Scala、Java 和 Python.

Apache Giraph也是一个图形处理工具集,功能等同于Apache Spark GraphX。 Apache Giraph 使用 Hadoop 作为数据存储层。您正在使用 Titan/Cassandra,因此当您将 select Apache Giraph 作为您的解决方案时,您可能会输入数据迁移任务。其次,您开始 post 时提出了一个关于使用 MLlib 的 ML 的问题,而 Apache Giraph 不是 ML 解决方案。

您关于 Giraph 和 Gremlin 的结论是不正确的:它们不一样,尽管它们都使用图形数据库。正如 spidy 所解释的那样,Giraph 是一种图形处理解决方案。使用 Giraph,您可以执行图形分析算法,例如 Page Rank,例如谁拥有最多的追随者,而 Gremlin 用于遍历,例如使用实体(顶点)之间的复杂关系(边)查询图形数据库,获得顶点和边属性的结果集。