Also, is the 0.2-SNAPSHOT src available anywhere or only 0.1 and the
latest releases? I have the 0.2 JAR but not the source.

Thanks!
Vernon

On Wed, Sep 5, 2012 at 5:02 PM, Avery Ching <[email protected]> wrote:
> Thanks for the report.  This is a bug I think when there are no paths.  Eli?
>
> Avery
>
>
> On 9/4/12 10:46 PM, Vernon Thommeret wrote:
>>
>> Just want to follow up on this. I was running on the latest version of
>> Giraph on Github when I was running into this issue. When I switched
>> back to the Giraph 0.2-SNAPSHOT release, my program was able to run.
>>
>> Thanks,
>> Vernon
>>
>> On Mon, Sep 3, 2012 at 12:44 AM, Vernon Thommeret <[email protected]>
>> wrote:
>>>
>>> I'm getting started with Giraph and I have a basic program running
>>> using the PseudoRandomVertexInputFormat. However, when I switch it to
>>> the IntIntNullIntTextInputFormat and specify an input file, I get a
>>> divide by zero error. I'm assuming that (1) I'm not setting this up
>>> properly and (2) there should probably be a length check before the
>>> division happens.
>>>
>>> This is the error I'm getting:
>>>
>>> java.lang.ArithmeticException: / by zero
>>>          at
>>> org.apache.giraph.graph.LocalityInfoSorter.prioritizeLocalInputSplits(LocalityInfoSorter.java:107)
>>>          at
>>> org.apache.giraph.graph.LocalityInfoSorter.<init>(LocalityInfoSorter.java:71)
>>>          at
>>> org.apache.giraph.graph.BspServiceWorker.reserveInputSplit(BspServiceWorker.java:228)
>>>          at
>>> org.apache.giraph.graph.BspServiceWorker.loadVertices(BspServiceWorker.java:317)
>>>          at
>>> org.apache.giraph.graph.BspServiceWorker.setup(BspServiceWorker.java:604)
>>>          at
>>> org.apache.giraph.graph.GraphMapper.setup(GraphMapper.java:368)
>>>          at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:569)
>>>          at
>>> org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647)
>>>          at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
>>>          at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
>>>          at java.security.AccessController.doPrivileged(Native Method)
>>>          at javax.security.auth.Subject.doAs(Subject.java:396)
>>>          at
>>> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1157)
>>>          at org.apache.hadoop.mapred.Child.main(Child.java:264)
>>>
>>> This is the change that causes the program to no longer work:
>>>
>>> ------------------------------------
>>>
>>>   import org.apache.hadoop.io.LongWritable;
>>>
>>>   import org.apache.giraph.graph.Edge;
>>> -import org.apache.giraph.graph.EdgeListVertex;
>>> +import org.apache.giraph.graph.IntIntNullIntVertex;
>>>   import org.apache.giraph.graph.GiraphJob;
>>> -import org.apache.giraph.io.PseudoRandomVertexInputFormat;
>>> +import org.apache.giraph.io.IntIntNullIntTextInputFormat;
>>>   import org.apache.giraph.io.AdjacencyListTextVertexOutputFormat;
>>>
>>>   /**
>>>    * Simple function to return the in degree for each vertex.
>>>    */
>>> -public class SimpleInDegreeCountVertex extends EdgeListVertex<
>>> -    LongWritable, DoubleWritable, DoubleWritable, DoubleWritable>
>>> -    implements Tool {
>>> +public class SimpleInDegreeCountVertex extends IntIntNullIntVertex
>>> implements Tool {
>>>
>>>     private Configuration conf;
>>>
>>>     @Override
>>> -  public void compute(Iterable<DoubleWritable> messages) {
>>> +  public void compute(Iterable<IntWritable> messages) {
>>>       voteToHalt();
>>>     }
>>>
>>> @@ -80,15 +78,11 @@ public class SimpleInDegreeCountVertex extends
>>> EdgeListVertex<
>>>       GiraphJob job = new GiraphJob(getConf(), getClass().getName());
>>>
>>>       job.setVertexClass(SimpleInDegreeCountVertex.class);
>>> -    job.setVertexInputFormatClass(PseudoRandomVertexInputFormat.class);
>>> +    job.setVertexInputFormatClass(IntIntNullIntTextInputFormat.class);
>>>
>>> job.setVertexOutputFormatClass(AdjacencyListTextVertexOutputFormat.class);
>>>       job.setWorkerConfiguration(10, 10, 100.0f);
>>>
>>> -    job.getConfiguration().setLong(
>>> -        PseudoRandomVertexInputFormat.AGGREGATE_VERTICES, 100l);
>>> -    job.getConfiguration().setLong(
>>> -        PseudoRandomVertexInputFormat.EDGES_PER_VERTEX, 2l);
>>> -
>>> +    FileInputFormat.addInputPath(job.getInternalJob(), new
>>> Path("connections/1.txt"));
>>>       FileOutputFormat.setOutputPath(job.getInternalJob(), new
>>> Path("in_degree_output"));
>>>
>>>       boolean isVerbose = cmd.hasOption('v');
>>>
>>> ------------------------------------
>>>
>>> "connections/1.txt" and "in_degree_output" are both in my home
>>> directory. /connections/1.txt has the following content:
>>>
>>> 1       5
>>> 2       5       6
>>> 3       5       6
>>> 4       1       2       3
>>>
>>> I've spent some time digging through the source and comparing to some
>>> of the example classes, but I'm having trouble working this out. Any
>>> thoughts?
>>>
>>> Thanks!
>>> Vernon
>
>

Reply via email to