Architecture of Graph Module

Hama includes the Graph module for vertex-centric graph computations. Hama's Graph APIs allows you to program Google's Pregel style applications with simple programming interface.

Internals

The Graph APIs are implemented on top of Hama BSP framework. It consists of three major classes: VertexInputReader, GraphJob, and GraphJobRunner.

VertexInputReader

GraphJob

GraphJob provides some additional Get/Set methods extending the core BSPJob interface for supporting the Graph specific configurations, suca as setMaxIteration, setAggregatorClass, setVertexInputReaderClass, and setVertexOutputWriterClass.

GraphJobRunner

LoadVertices

doInitialSuperstep and doSuperstep

GraphJobMessage

Future Ideas and Challenges