RE: MultiVertexInputFormat

2013-08-16 Thread Yasser Altowim
Thanks a lot Avery for your response. I am now using 
VertexInputFormatDescription, but still could not figure out how to set the 
Vertex input path. I just need to read the vertex values from two different 
files, each with its own format. I am not using  any EdgeInputFormatClass.

 Can you please take a look at my code below and show me how to set the 
Vertex Input Path? Thanks


if (null == getConf()) {
conf = new Configuration();
   }

   GiraphConfiguration gconf = new GiraphConfiguration(getConf());
   int workers = Integer.parseInt(arg0[2]);
   gconf.setWorkerConfiguration(workers, workers, 100.0f);



   List vertexInputDescriptions = 
Lists.newArrayList();

   // Input one
   VertexInputFormatDescription description1 = new 
VertexInputFormatDescription(UseCase1FirstVertexInputFormat.class);
   // how to set the vertex input path?
   vertexInputDescriptions.add(description1);

  // Input two
   VertexInputFormatDescription description2 = new 
VertexInputFormatDescription(UseCase1SecondVertexInputFormat.class);
   // how to set the vertex input path?
   vertexInputDescriptions.add(description2);


  
VertexInputFormatDescription.VERTEX_INPUT_FORMAT_DESCRIPTIONS.set(gconf,InputFormatDescription.toJsonString(vertexInputDescriptions));


   gconf.setVertexOutputFormatClass(UseCase1OutputFormat.class);
   gconf.setComputationClass(UseCase1Vertex.class);
   GiraphJob job = new GiraphJob(gconf, "Use Case 1");
   FileOutputFormat.setOutputPath(job.getInternalJob(), new 
Path(arg0[1]));
   return job.run(true) ? 0 : -1;



Best,
Yasser

From: Avery Ching [mailto:ach...@apache.org]
Sent: Friday, August 16, 2013 9:50 AM
To: user@giraph.apache.org
Subject: Re: MultiVertexInputFormat

This is doable in Giraph, you can use as many vertex or edge input formats as 
you like (via GIRAPH-639).  You just need to choose MultiVertexInputFormat 
and/or MultiEdgeInputFromat

See VertexInputFormatDescription for vertex input formats

  /**
   * VertexInputFormats description - JSON array containing a JSON array for
   * each vertex input. Vertex input JSON arrays contain one or two elements -
   * first one is the name of vertex input class, and second one is JSON object
   * with all specific parameters for this vertex input. For example:
   * [["VIF1",{"p":"v1"}],["VIF2",{"p":"v2","q":"v"}]]
   */
  public static final StrConfOption VERTEX_INPUT_FORMAT_DESCRIPTIONS =
  new StrConfOption("giraph.multiVertexInput.descriptions", null,
  "VertexInputFormats description - JSON array containing a JSON " +
  "array for each vertex input. Vertex input JSON arrays contain " +
  "one or two elements - first one is the name of vertex input " +
  "class, and second one is JSON object with all specific parameters " +
  "for this vertex input. For example: [[\"VIF1\",{\"p\":\"v1\"}]," +
  "[\"VIF2\",{\"p\":\"v2\",\"q\":\"v\"}]]\"");

See EdgeInputFormatDescription for edge input formats

  /**
   * EdgeInputFormats description - JSON array containing a JSON array for
   * each edge input. Edge input JSON arrays contain one or two elements -
   * first one is the name of edge input class, and second one is JSON object
   * with all specific parameters for this edge input. For example:
   * [["EIF1",{"p":"v1"}],["EIF2",{"p":"v2","q":"v"}]]
   */
  public static final StrConfOption EDGE_INPUT_FORMAT_DESCRIPTIONS =
  new StrConfOption("giraph.multiEdgeInput.descriptions", null,
  "EdgeInputFormats description - JSON array containing a JSON array " +
  "for each edge input. Edge input JSON arrays contain one or two " +
  "elements - first one is the name of edge input class, and second " +
  "one is JSON object with all specific parameters for this edge " +
  "input. For example: [[\"EIF1\",{\"p\":\"v1\"}]," +
  "[\"EIF2\",{\"p\":\"v2\",\"q\":\"v\"}]]");

Hope that helps,

Avery

On 8/16/13 8:45 AM, Yasser Altowim wrote:
Guys, any help with this will be appreciated. Thanks.

From: Yasser Altowim [mailto:yasser.alto...@ericsson.com]
Sent: Thursday, August 15, 2013 2:07 PM
To: user@giraph.apache.org
Subject: MultiVertexInputFormat

Hi,

 I am implementing an algorithm using Giraph. My  algorithm needs 
to read input data from two files, each has its own format. My questions are:


1.   How can I use the MultiVertexInputFormat class? Is there any example 
that shows how this class can be used?

2.   How can I specify this class when running my job using the Giraph 
Runner or using a driver class?

Thanks in advance.

Best,
Yasser




Re: MultiVertexInputFormat

2013-08-16 Thread Avery Ching
This is doable in Giraph, you can use as many vertex or edge input 
formats as you like (via GIRAPH-639).  You just need to choose 
MultiVertexInputFormat and/or MultiEdgeInputFromat


See VertexInputFormatDescription for vertex input formats

  /**
   * VertexInputFormats description - JSON array containing a JSON 
array for
   * each vertex input. Vertex input JSON arrays contain one or two 
elements -
   * first one is the name of vertex input class, and second one is 
JSON object

   * with all specific parameters for this vertex input. For example:
   * [["VIF1",{"p":"v1"}],["VIF2",{"p":"v2","q":"v"}]]
   */
  public static final StrConfOption VERTEX_INPUT_FORMAT_DESCRIPTIONS =
  new StrConfOption("giraph.multiVertexInput.descriptions", null,
  "VertexInputFormats description - JSON array containing a 
JSON " +
  "array for each vertex input. Vertex input JSON arrays 
contain " +

  "one or two elements - first one is the name of vertex input " +
  "class, and second one is JSON object with all specific 
parameters " +
  "for this vertex input. For example: 
[[\"VIF1\",{\"p\":\"v1\"}]," +

  "[\"VIF2\",{\"p\":\"v2\",\"q\":\"v\"}]]\"");

See EdgeInputFormatDescription for edge input formats

  /**
   * EdgeInputFormats description - JSON array containing a JSON array for
   * each edge input. Edge input JSON arrays contain one or two elements -
   * first one is the name of edge input class, and second one is JSON 
object

   * with all specific parameters for this edge input. For example:
   * [["EIF1",{"p":"v1"}],["EIF2",{"p":"v2","q":"v"}]]
   */
  public static final StrConfOption EDGE_INPUT_FORMAT_DESCRIPTIONS =
  new StrConfOption("giraph.multiEdgeInput.descriptions", null,
  "EdgeInputFormats description - JSON array containing a JSON 
array " +
  "for each edge input. Edge input JSON arrays contain one or 
two " +
  "elements - first one is the name of edge input class, and 
second " +
  "one is JSON object with all specific parameters for this 
edge " +

  "input. For example: [[\"EIF1\",{\"p\":\"v1\"}]," +
  "[\"EIF2\",{\"p\":\"v2\",\"q\":\"v\"}]]");

Hope that helps,

Avery

On 8/16/13 8:45 AM, Yasser Altowim wrote:


Guys, any help with this will be appreciated. Thanks.

*From:*Yasser Altowim [mailto:yasser.alto...@ericsson.com]
*Sent:* Thursday, August 15, 2013 2:07 PM
*To:* user@giraph.apache.org
*Subject:* MultiVertexInputFormat

Hi,

 I am implementing an algorithm using Giraph. My  
algorithm needs to read input data from two files, each has its own 
format. My questions are:


1.How can I use the MultiVertexInputFormat class? Is there any example 
that shows how this class can be used?


2.How can I specify this class when running my job using the Giraph 
Runner or using a driver class?


Thanks in advance.

*Best,*

*Yasser*





RE: MultiVertexInputFormat

2013-08-16 Thread Yasser Altowim
Guys, any help with this will be appreciated. Thanks.

From: Yasser Altowim [mailto:yasser.alto...@ericsson.com]
Sent: Thursday, August 15, 2013 2:07 PM
To: user@giraph.apache.org
Subject: MultiVertexInputFormat

Hi,

 I am implementing an algorithm using Giraph. My  algorithm needs 
to read input data from two files, each has its own format. My questions are:


1.   How can I use the MultiVertexInputFormat class? Is there any example 
that shows how this class can be used?

2.   How can I specify this class when running my job using the Giraph 
Runner or using a driver class?

Thanks in advance.

Best,
Yasser