Hadoop编程-自定义Hadoop数据类型报错:NoSuchMethodException

       Hadoop拥有自己一个I/O机制,要用Mapper、Reducer对数据进行处理,就离不开Hadoop提供的I/O基础数据类型,Hadoop提供了BooleanWritable、ByteWritable、IntWritable、FloatWritable、DoubleWritable、LongWritable等。用Hadoop提供的这些基础数据类型,可以解决一些简单的数据处理,如:最常见的“词频”的处理分析。当要处理一些复杂的问题,基础数据类型就无法很好的满足了,这时,我们可以定义自己的数据类型,灵活的来应对复杂数据的抽取、分析需要。

       Hadoop中,自定的类型,需要实现Writable接口,并要重写:toString()、write()、redFields()方法,这里需要特别注意的,就是要给这个类型定义一个空的构造方法,其他的数据处理方法,任意来都可以,如果不定义空的构造方法的话,在编译期是不会报错的,但是一用了自定义的数据类型时,在执行Job时,就会报错,报错概要信息如下:

java.lang.Exception: java.lang.RuntimeException: java.lang.NoSuchMethodException: cb.mapreduce.writalbe.examples.IISLogInfoWritable.<init>()
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:529)



你可能感兴趣的:(mapreduce,hadoop)