Avery Ching created GIRAPH-214:
----------------------------------

             Summary: GiraphJob should have configuration split out of it to be 
cleaner (GiraphConf)
                 Key: GIRAPH-214
                 URL: https://issues.apache.org/jira/browse/GIRAPH-214
             Project: Giraph
          Issue Type: Bug
            Reporter: Avery Ching
            Priority: Minor


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. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to