Hi John,
yes I've tried to insert a no-arguments constructor but the problem seems
to be another one.This is my code, an input format with a vertexreader to
read triple as RDF.

import java.io.IOException;
import java.util.ArrayList;
import java.lang.InterruptedException;

import org.apache.giraph.graph.Vertex;
import org.apache.giraph.edge.Edge;
import org.apache.giraph.edge.EdgeFactory;
import org.apache.giraph.io.VertexReader;
import org.apache.giraph.io.VertexInputFormat;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.lib.input.LineRecordReader;
import org.apache.hadoop.mapreduce.TaskAttemptContext;



public abstract class SimpleRDFVertexInputFormat extends VertexInputFormat
<Text,NullWritable,Text> {

    public SimpleRDFVertexInputFormat() {
        // TODO Auto-generated constructor stub
        super();
    }

    public VertexReader<Text,NullWritable,Text>
createVertexReader(InputSplit split,TaskAttemptContext context) throws
IOException{
        return new SimpleRDFVertexReader();
    }
    public class SimpleRDFVertexReader extends
VertexReader<Text,NullWritable,Text>{

        private RecordReader<LongWritable,Text> lineRecordReader;
        private TaskAttemptContext context;


        @Override
        public void initialize(InputSplit inputsplit, TaskAttemptContext
context) throws IOException, InterruptedException{

            this.setContext(context);
            lineRecordReader= new LineRecordReader();
            lineRecordReader.initialize(inputsplit, context);

        }

        @Override
        public final boolean nextVertex() throws IOException,
InterruptedException{
            return lineRecordReader.nextKeyValue();
        }


        @Override
        public final Vertex<Text,NullWritable,Text> getCurrentVertex()
throws IOException, InterruptedException{
            Text line = lineRecordReader.getCurrentValue();
            Vertex<Text,NullWritable,Text> vertex =
getConf().createVertex();
            String[] elements = line.toString().split(" ");
            Text firstele = new Text(elements[0]);
            int len1 = firstele.getLength();
            Text  subject = new Text(firstele.toString().substring(1,
len1-1));
            Text secondele = new Text(elements[1]);
            int len2 = secondele.getLength();
            Text predicate = new Text(secondele.toString().substring(1,
len2-1));
            Text object = new Text(elements[2]);
            ArrayList<Edge<Text,Text>> edge = new
ArrayList<Edge<Text,Text>>();
            edge.add(EdgeFactory.create(object, predicate) );
            vertex.initialize(subject, null, edge );
            return vertex;

        }

        @Override
        public void close() throws IOException{
            lineRecordReader.close();
        }

        @Override
        public  float getProgress()throws IOException,InterruptedException{
            return lineRecordReader.getProgress();
        }

        public TaskAttemptContext getContext() {
            return context;
        }

        public void setContext(TaskAttemptContext context) {
            this.context = context;
        }


    }


}


2014-07-01 4:23 GMT+02:00 John Yost <soozandjohny...@gmail.com>:

> Hi Carmen,
>
> Question--did you only define an arguments constructor?  If so, I think
> you are getting this because you did not define a no-arguments constructor
> with public visibility.  If this is not the case, I recommend posting your
> source code and I will be happy to help.
>
> --John
>
>
> On Mon, Jun 30, 2014 at 9:38 AM, Carmen Manzulli <carmenmanzu...@gmail.com
> > wrote:
>
>> Hi,
>>
>> I'm trying to run a selectionComputation with my own code for 
>> VertexInputFormat but giraph' job starts to work and then fails with:
>>
>>
>>
>>
>> java.lang.IllegalStateException: run: Caught an unrecoverable exception 
>> newInstance: Couldn't instantiate sisinflab.SimpleRDFVertexInputFormat
>>      at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:101)
>>      at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
>>      at org.apache.hadoop.mapred.MapTask.run(MapTask.java:364)
>>      at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
>>      at java.security.AccessController.doPrivileged(Native Method)
>>      at javax.security.auth.Subject.doAs(Subject.java:415)
>>      at 
>> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
>>      at org.apache.hadoop.mapred.Child.main(Child.java:249)
>> Caused by: java.lang.IllegalStateException: newInstance: Couldn't 
>> instantiate sisinflab.SimpleRDFVertexInputFormat
>>      at 
>> org.apache.giraph.utils.ReflectionUtils.newInstance(ReflectionUtils.java:105)
>>      at 
>> org.apache.giraph.conf.ImmutableClassesGiraphConfiguration.createVertexInputFormat(ImmutableClassesGiraphConfiguration.java:235)
>>      at 
>> org.apache.giraph.conf.ImmutableClassesGiraphConfiguration.createWrappedVertexInputFormat(ImmutableClassesGiraphConfiguration.java:246)
>>      at 
>> org.apache.giraph.graph.GraphTaskManager.checkInput(GraphTaskManager.java:171)
>>      at 
>> org.apache.giraph.graph.GraphTaskManager.setup(GraphTaskManager.java:207)
>>      at org.apache.giraph.graph.GraphMapper.setup(GraphMapper.java:59)
>>      at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:89)
>>      ... 7 more
>> Caused by: java.lang.InstantiationException
>>      at 
>> sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
>>      at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
>>      at java.lang.Class.newInstance(Class.java:374)
>>      at 
>> org.apache.giraph.utils.ReflectionUtils.newInstance(ReflectionUtils.java:103)
>>      ... 13 more
>>
>>
>> what does it mean? where is the problem?
>>
>> Who can help me?
>>
>> Carmen
>>
>>
>

Reply via email to