Hadoop: No Such Method Exception

前端 未结 3 1279
自闭症患者
自闭症患者 2020-12-09 12:48

I have written a MapReduce program, code is below:

import java.io.IOException;
import java.util.Iterator;
import org.apache.hadoop.io.IntWritable;
import org         


        
3条回答
  •  春和景丽
    2020-12-09 13:17

    I fixed Similar error in scala with default constructor in my custom KEY from Mapper for Reducer

    Problem

    15/05/12 01:07:57 WARN mapred.LocalJobRunner: job_local1713686765_0001
    java.lang.Exception: java.io.IOException: Initialization of all the collectors failed. Error in last collector was :java.lang.NoSuchMethodException: IntPair.()
        at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
        at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
    Caused by: java.io.IOException: Initialization of all the collectors failed. Error in last collector was :java.lang.NoSuchMethodException: IntPair.()
        at org.apache.hadoop.mapred.MapTask.createSortingCollector(MapTask.java:414)
        at org.apache.hadoop.mapred.MapTask.access$100(MapTask.java:81)
        at org.apache.hadoop.mapred.MapTask$NewOutputCollector.(MapTask.java:698)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:770)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
        at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
    

    Solution - Default constructor

    class IntPair (first : IntWritable, second : IntWritable) extends WritableComparable[IntPair] {
    
          def this() = this(first = new IntWritable(), second = new IntWritable())
    
         def getFirst () : IntWritable = {
             first
         }
    
         def getSecond () : IntWritable = {
             second
         }
    
    }
    

提交回复
热议问题