Hello,

I've been having some problems getting Giraph to work with a table
that is stored in HBase.  I've created my own classes that extend
HBaseVertexInputFormat and HBaseVertexReader (respectively) and
implemented nextVertex() and getVertex() accordingly, but I still
can't get it to work. Here is what I typed into the command line after
specifying the GiraphRunner class:

org.apache.giraph.examples.SimplePageRankComputation -vif
HBasePractice.LongDoubleFloatHBaseVertexInputFormat -of
org.apache.giraph.io.formats.IdWithValueTextOutputFormat -op /hbaseOut
-w 2 -mc 
org.apache.giraph.examples.SimplePageRankComputation\$SimplePageRankMasterCompute

This is the error that I'm getting from the logs:

2013-07-31 17:20:28,880 ERROR org.apache.giraph.master.MasterThread:
masterThread: Master algorithm failed with NullPointerException
java.lang.NullPointerException
        at 
org.apache.hadoop.hbase.mapreduce.TableInputFormat.setConf(TableInputFormat.java:94)
        at 
org.apache.giraph.io.hbase.HBaseVertexInputFormat.getSplits(HBaseVertexInputFormat.java:169)
        at 
org.apache.giraph.io.internal.WrappedVertexInputFormat.getSplits(WrappedVertexInputFormat.java:72)
        at 
org.apache.giraph.master.BspServiceMaster.generateInputSplits(BspServiceMaster.java:315)
        at 
org.apache.giraph.master.BspServiceMaster.createInputSplits(BspServiceMaster.java:627)
        at 
org.apache.giraph.master.BspServiceMaster.createVertexInputSplits(BspServiceMaster.java:694)
        at org.apache.giraph.master.MasterThread.run(MasterThread.java:100)
2013-07-31 17:20:28,881 FATAL org.apache.giraph.graph.GraphMapper:
uncaughtException: OverrideExceptionHandler on thread
org.apache.giraph.master.MasterThread, msg =
java.lang.NullPointerException, exiting...
java.lang.IllegalStateException: java.lang.NullPointerException
        at org.apache.giraph.master.MasterThread.run(MasterThread.java:185)
Caused by: java.lang.NullPointerException
        at 
org.apache.hadoop.hbase.mapreduce.TableInputFormat.setConf(TableInputFormat.java:94)
        at 
org.apache.giraph.io.hbase.HBaseVertexInputFormat.getSplits(HBaseVertexInputFormat.java:169)
        at 
org.apache.giraph.io.internal.WrappedVertexInputFormat.getSplits(WrappedVertexInputFormat.java:72)
        at 
org.apache.giraph.master.BspServiceMaster.generateInputSplits(BspServiceMaster.java:315)
        at 
org.apache.giraph.master.BspServiceMaster.createInputSplits(BspServiceMaster.java:627)
        at 
org.apache.giraph.master.BspServiceMaster.createVertexInputSplits(BspServiceMaster.java:694)
        at org.apache.giraph.master.MasterThread.run(MasterThread.java:100)

 I don't know how/why a NullPointerException is being thrown.  Do I
need to specify the -vip option? I didn't think so, because in my code
for my class that extends HBaseVertexInputFormat I do the following:

private ImmutableClassesGiraphConfiguration<LongWritable,
DoubleWritable, FloatWritable> conf;

@Override
          public void setConf(ImmutableClassesGiraphConfiguration<LongWritable,
DoubleWritable, FloatWritable> conf) {
                conf.set(TableInputFormat.INPUT_TABLE, "edges");
                this.conf = conf;
          }

Help would be much appreciated.  I actually was a bit hesitant to post
this at first; I was determined to figure it out on my own, but then I
noticed that there have been virtually no questions asked regarding
HBase + Giraph on this mailing list, so I figured that posting this
might help someone out with similar problems later on in the future.

Thanks,
-- 
Kyle Orlando
Computer Engineering Major
University of Maryland

Reply via email to