Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Won't Fix
-
None
-
None
-
None
Description
Currently all the configuration for Giraph is part of GiraphJob, making things messy for GiraphJob.
It would be better if we added a GiraphConf (similar to Hive) that is responsible for handling configuration of the Job.
i.e.
public class GiraphJob extends Configuration....
To simplify config, we should make get/set methods for as many of the parameters as possible.
We are targeting configuration such as
/**
- Set the vertex class (required)
* - @param vertexClass Runs vertex computation
*/
public final void setVertexClass(Class<?> vertexClass) { getConfiguration().setClass(VERTEX_CLASS, vertexClass, BasicVertex.class); }
/**
- Set the vertex input format class (required)
* - @param vertexInputFormatClass Determines how graph is input
*/
public final void setVertexInputFormatClass(
Class<?> vertexInputFormatClass) { getConfiguration().setClass(VERTEX_INPUT_FORMAT_CLASS, vertexInputFormatClass, VertexInputFormat.class); }
/**
- Set the vertex output format class (optional)
* - @param vertexOutputFormatClass Determines how graph is output
*/
public final void setVertexOutputFormatClass(
Class<?> vertexOutputFormatClass) { getConfiguration().setClass(VERTEX_OUTPUT_FORMAT_CLASS, vertexOutputFormatClass, VertexOutputFormat.class); }
/**
- Set the vertex combiner class (optional)
* - @param vertexCombinerClass Determines how vertex messages are combined
*/
public final void setVertexCombinerClass(Class<?> vertexCombinerClass) { getConfiguration().setClass(VERTEX_COMBINER_CLASS, vertexCombinerClass, VertexCombiner.class); }
/**
- Set the graph partitioner class (optional)
* - @param graphPartitionerFactoryClass Determines how the graph is partitioned
*/
public final void setGraphPartitionerFactoryClass(
Class<?> graphPartitionerFactoryClass) { getConfiguration().setClass(GRAPH_PARTITIONER_FACTORY_CLASS, graphPartitionerFactoryClass, GraphPartitionerFactory.class); }
/**
- Set the vertex resolver class (optional)
* - @param vertexResolverClass Determines how vertex mutations are resolved
*/
public final void setVertexResolverClass(Class<?> vertexResolverClass) { getConfiguration().setClass(VERTEX_RESOLVER_CLASS, vertexResolverClass, VertexResolver.class); }
/**
- Set the worker context class (optional)
* - @param workerContextClass Determines what code is executed on a each
- worker before and after each superstep and computation
*/
public final void setWorkerContextClass(Class<?> workerContextClass) { getConfiguration().setClass(WORKER_CONTEXT_CLASS, workerContextClass, WorkerContext.class); }...etc.