0

我有一个自定义算法来处理接受 txt 文件作为输入的图形。因为它是一个大规模图,所以我想在 apache giraph 框架中实现它。我做了很多研究,但我仍然不确定我是否走在正确的道路上。

我正在读取一个包含图形数据的 .csv 文件并使用解析器将其转换为 txt 文件并上传到 hadoop 的 HDFS 文件系统。

我已经阅读了 apache 快速入门指南中的 SimpleShortestPathsVertex 示例,我可以看到它使用 jar-with-dependencies jar 文件处理来自 HDFS 中的文件的数据。

我的问题是我还不明白如何在 apache giraph 框架中添加我的算法并启动图形的过程。我可以使用 eclipse 将我的算法添加到 apache 框架并从那里修改它还是有任何其他方式?

谢谢!

4

1 回答 1

2

看看这里: https ://cwiki.apache.org/confluence/display/GIRAPH/Shortest+Paths+Example

你可以在哪里运行这个例子?如是。熟悉 hadoop 的不同可写格式!否则很难将这些用于您的算法。

所有关于图的计算都在 compute() 函数中完成。(如果您更高级,请查看 workerContext preSuperstep 和 Aggregators!)您可以更改示例,但是一旦使用其他数据类型,您就必须更改 VertexReader 和 VertexWriter。

如果您有特定的算法,请确定计算所需的内容并指定输入文件的布局。然后调整您的 VertexReader 和 -Writer。然后最后开始实现你的 compute() 函数!

当然你可以使用eclipse!只需引用 Giraph jar(对我来说它是“giraph-0.1-jar-with-dependencies.jar”)并开始编码。您只需要一个特定于您的算法的这些文件的实例:

  • YourGiraphJob(启动 Hadoop/Giraph 作业的文件)
  • YourVertex(指定在每个顶点上执行的 compute() 函数)
  • YourInputFormat(指定YourReader的可写格式)
  • YourOutputFormat(指定YourWriter的可写格式)
  • YourReader(指定您的 inputFile 是如何转换的,例如,对于每一行,可以使用给定信息初始化一个 Vertex)
  • YourWriter(指定如何从顶点生成 outputFile)

(如果你想使用聚合器,可以选择一个 WorkerContext。)

只需结帐: http: //giraph.apache.org/source-repository.html 使用 Eclipse,您应该拥有包含示例应用程序的代码,您可以使用它!

于 2013-02-28T11:28:04.973 回答