Gremlin - Giraph - GraphX?在TitanDb上

ded*_*ede 6 gremlin titan tinkerpop giraph spark-graphx

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

我的第一个想法是:使用Titan和GraphX,但我没有找到任何东西或正在开发中...... TinkerPop还没准备好.所以我看看Giraph.TinkerPop,Titan可以与TinkerPop的Rexster通信.

我的问题是:使用Giraph有什么好处?Gremlin似乎也在思考并分发.

非常感谢你解释我.我想我并不真正理解Gremlin和Giraph(或GraphX)之间的区别.

祝你今天愉快.

sbh*_*att 10

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

我相信你要求graphx或giraph和titan之间的区别.更具体地说,为什么在图形数据库中已有数据时才使用图形处理系统?

所以它本质上是图数据库和图处理系统之间的区别.

  • 当您的应用程序需要经常查询数据时,Graph数据库就是您的主人.例如,对于Facebook类型的应用程序,给予用户,返回他/她的所有朋友.这适用于图形数据库,您可以使用gremlin进行查询.

  • 现在,如果要计算facebook中每个用户的排名,则需要在整个图表上运行pagerank算法.换句话说,pagerank算法处理整个图形并返回地图.这适用于图形处理系统.是的,您可以使用gremlin框架编写查询来执行此操作,但1.它不会像giraph或graphx使用的基础pregel模型那样用户友好.2.效率不高.

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

giraph和graphx具有图形输入格式.您可以将数据转储到文件中,然后将其输入到其中一个系统中,也可以编写自己的输入格式.

ps在giraph graphx中添加一个输入格式是很好的,它接受存储在titan中的数据.


小智 8

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

首先是关于MLlib的问题.我假设您的意思是Apache Spark MLlib,Apache Spark上的机器学习(ML)实现.所以我的结论是:您希望使用基于Titan/Cassandra的图形数据库中的数据运行ML算法,例如聚类和分类.请注意,您还可以使用spidy提到的Page Rank等图形处理算法来完成Titan/Cassandra图形数据库之上的聚类等操作.换句话说:当您的起点是图形数据库时,您不需要ML来进行聚类.

Apache Spark MLlib似乎是未来的证据和广泛的支持,他们最近的公告是关于新的ML算法,虽然Apache Mahout,另一个Apache ML项目,在支持ML算法的数量上更加成熟.Apache Mahout也采用了Apache Spark作为他们的数据存储层,所以我在这篇文章中提到了它.除了内存计算之外,Apache Spark还提供了用于机器学习的MLlib,Spark SQL就像Spark上的Hive,GraphX是一个图形处理系统,由spidy和Spark Streaming解释,用于处理流数据.

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

Apache Giraph也是一个图形处理工具集,功能相当于Apache Spark GraphX.Apache Giraph使用Hadoop作为数据存储层.您正在使用Titan/Cassandra,因此当您选择Apache Giraph作为解决方案时,您可能会进入数据迁移任务.其次,您使用MLlib开始发布有关ML的问题,Apache Giraph不是ML解决方案.

关于Giraph和Gremlin的结论是不正确的:虽然两者都使用图形数据库,但它们并不相同.Spidy解释说,Giraph是图形处理的解决方案.使用Giraph你可以执行图形分析算法,例如Page Rank,例如谁拥有最多的追随者,而Gremlin则用于遍历例如使用实体(顶点)之间的复杂关系(边缘)来获取图形数据库,获得顶点和边缘的结果集属性.