OK!!!So in this way i've also to implement checkInputSpecs and getSplits metods, right?? Thank you very much :)
2014-07-01 12:51 GMT+02:00 <soozandjohny...@gmail.com>: > Ah, okay, I see the problem. Abstract classes cannot be instantiated in > Java. Ensure you've implemented all of the abstract methods, remove the > abstract keyword from your class definition, and you should be ready to > roll. > > -John > > Sent from my iPhone > > On Jul 1, 2014, at 5:42 AM, Carmen Manzulli <carmenmanzu...@gmail.com> > wrote: > > 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 >>> >>> >> >