Hadoop 2 (YARN). getting java.io.IOException: wrong key class. Exception -


i'm trying run hadoop 2 mapreduce process output_format_class sequencefileoutputformat , input_format_class sequencefileinputformat.

i chose mapper emits key , value both byteswritable. reducer emits key intwritable , value byteswritable.

every time i'm getting following error:

error: java.io.ioexception: wrong key class: org.apache.hadoop.io.byteswritable not class org.apache.hadoop.io.intwritable         @ org.apache.hadoop.io.sequencefile$writer.append(sequencefile.java:1306)         @ org.apache.hadoop.mapreduce.lib.output.sequencefileoutputformat$1.write(sequencefileoutputformat.java:83)         @ org.apache.hadoop.mapred.reducetask$newtrackingrecordwriter.write(reducetask.java:558)         @ org.apache.hadoop.mapreduce.task.taskinputoutputcontextimpl.write(taskinputoutputcontextimpl.java:89)         @ org.apache.hadoop.mapreduce.lib.reduce.wrappedreducer$context.write(wrappedreducer.java:105)         @ org.apache.hadoop.mapreduce.reducer.reduce(reducer.java:150)         @ org.apache.hadoop.mapreduce.reducer.run(reducer.java:171)         @ org.apache.hadoop.mapred.reducetask.runnewreducer(reducetask.java:627)         @ org.apache.hadoop.mapred.reducetask.run(reducetask.java:389)         @ org.apache.hadoop.mapred.yarnchild$2.run(yarnchild.java:163)         @ java.security.accesscontroller.doprivileged(native method)         @ javax.security.auth.subject.doas(subject.java:415)         @ org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation.java:1628)         @ org.apache.hadoop.mapred.yarnchild.main(yarnchild.java:158) 

i discovered when define outputformat not sequencefileoutputformat problem solved need sequencefileoutputformat.

here main:

    configuration conf = new configuration(true);     conf.set("refpath", "/out/sample1/local/eu/cloudburst/binaryfiles/ref.br");     conf.set("qrypath",   "/out/sample1/local/eu/cloudburst/binaryfiles/qry.br");     conf.set("min_read_len",      integer.tostring(min_read_len));     conf.set("max_read_len",      integer.tostring(max_read_len));     conf.set("k",                 integer.tostring(k));     conf.set("seed_len",          integer.tostring(seed_len));     conf.set("flank_len",         integer.tostring(flank_len));     conf.set("allow_differences", integer.tostring(allow_differences));     conf.set("block_size",        integer.tostring(block_size));     conf.set("redundancy",        integer.tostring(redundancy));     conf.set("filter_alignments", (filter_alignments ? "1" : "0"));      job job = new job(conf,"cloudburst");     job.setnumreducetasks(num_reduce_tasks); // mv2      //conf.setnummaptasks(num_map_tasks); todo find solution mv2      fileinputformat.addinputpath(job, new path("/out/sample1/local/eu/cloudburst/binaryfiles/ref.br"));//todo change fit params     fileinputformat.addinputpath(job, new path("/out/sample1/local/eu/cloudburst/binaryfiles/qry.br"));//todo change fit params      job.setjarbyclass(merreduce.class);//mv2      job.setinputformatclass(sequencefileinputformat.class);     job.setoutputformatclass(sequencefileoutputformat.class);      // order of seeds not important, make sure reference seeds seen before qry seeds     job.setpartitionerclass(merreduce.partitionmers.class); // mv2     job.setgroupingcomparatorclass(merreduce.groupmerswc.class); //mv2 todo      job.setmapperclass(merreduce.mapclass.class);     job.setreducerclass(merreduce.reduceclass.class);      job.setmapoutputkeyclass(byteswritable.class);//mv2     job.setmapoutputvalueclass(byteswritable.class);//mv2     job.setoutputkeyclass(intwritable.class);     job.setoutputvalueclass(byteswritable.class);      path opath = new path("/out/sample1/local/eu/vectors");//todo change fit params     //conf.setoutputpath(opath);     fileoutputformat.setoutputpath(job, opath);     system.err.println("  removing old results");     filesystem.get(conf).delete(opath);      int code = job.waitforcompletion(true) ? 0 : 1;      system.err.println("finished"); } 

the mapper class headline:

public static class mapclass extends mapper<intwritable, byteswritable, byteswritable, byteswritable>     public void map(intwritable id, byteswritable rawrecord,context context) throws ioexception, interruptedexception  

the reducer class headline:

public static class reduceclass extends reducer (byteswritable, byteswritable, intwritable, byteswritable)

    public synchronized void reduce(byteswritable mer, iterator<byteswritable> values,context context)             throws ioexception, interruptedexception { 

anybody has idea?

job.setinputformatclass(sequencefileinputformat.class); 

should

job.setinputformatclass(intwritable.class);

you mapper input int , bytes, in job gave both inputs sequence


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -