在hadoop,giraph和twister之间混淆

时间:2015-05-29 03:28:55

标签: hadoop mapreduce hadoop2 giraph

我正在研究大数据,我的项目由具有文本数据的图组成。我必须计算顶点之间的相似性,跳跃概率,连接组件数,页面排名向量和一个项目本身的随机游走。

我在hadoop中实现了它们,但我认为它需要更多的时间(图形有2500个节点4000个边缘600个连接组件需要25分钟)所以什么可能是实现这些的最佳选择,apache hadoop或apache giraph或apache twister?

2 个答案:

答案 0 :(得分:1)

查找连接组件,页面排名计算和随机游走是迭代算法的示例。传统的Map-Reduce编程模型不是迭代算法(特别是图形算法)的好选择。原因是在map-reduce的每次迭代中,所有数据必须从映射器传输到reducer(例如高I / O和网络)。在对比中,Giraph非常适合这类算法。在giraph中,所有数据都被分区并加载一次,并且在每次迭代中(超级步骤),只有结果通过机器传输。

答案 1 :(得分:0)

虽然这个问题已经发布已经有一段时间了,但我还是想通过我的经验投入这个主题。 对于处理时间的关注,这取决于您对数据进行了多少处理?您是在一个MR作业中执行上述所有计算还是在同一程序中执行多个MR作业?如果是,则可能需要时间。还有多少次迭代用于计算页面排名?群集的大小是多少?

我会选择Masoud选择Giraph进行图形处理的答案,并希望增加更多。使用Map Reduce Programming模型进行Graph处理很困难有几个原因。

  1. 您需要将图表分区,因为它们不适合 单机。 (范围划分以保持邻居在一起 例如,如果你有5个不同大学的节点/用户,那么大多数 可能你会同时拥有一所大学的所有节点 机)

  2. 您可能需要执行数据复制。

  3. 减少跨分区通信。

  4. 回到你的第二个问题,不了解Apache Twister,我会选择Apache Giraph,因为它是专为大规模分布式图算法而构建的,其中框架可以处理所有繁重的处理需求。这些基本上是因为图形算法的特征,如遍历图形,沿其边缘传递信息到其他节点等。

    我最近将Giraph用于我的一个大数据项目,这很棒。如果我没有回答太晚,你应该调查一下。

    您可以参考这些slides获取详细说明。