Mapper类型不是通用的;它不能参数化参数<longwritable,text,=“”text,=“”intwritable =“”> </longwritable,>

时间:2013-06-11 17:57:20

标签: hadoop mapreduce

错误的原因是什么?我能够在mac eclipse上成功编译。但不是在运行CDH4的hadoop服务器上。

root @ hadoop] #javac -cp /usr/lib/hadoop/hadoop-common.jar:/usr/lib/hadoop/client-0.20/commons-cli-1.2.jar:/usr/lib/hadoop/ client-0.20 / hadoop-core-2.0.0-mr1-cdh4.1.3.jar WordCount。

1. ERROR in WordCount.java (at line 12)
public static class Map extends MapReduceBase implements Mapper <LongWritable, Text, Text, IntWritable> 

Mapper类型不是通用的;它不能用参数&lt;参数化LongWritable,Text,Text,&gt;

2. ERROR in WordCount.java (at line 12)
public static class Map extends MapReduceBase implements Mapper <LongWritable, Text, Text, IntWritable> {

语法错误,参数化类型仅在源级别为5.0

时可用

1 个答案:

答案 0 :(得分:1)

您似乎已将旧版本的Hadoop与较新版本混合使用。此外,您已使用旧的mapreduce API i。 mapred。我建议你使用较新的API重新编写程序,例如mapreduce,而不将旧的hadoop版本的jars与新版本混合。

此外,您似乎正在尝试使用与Eclipse配置使用的jre不同的jre。使用java -version检查计算机上安装的java版本,并相应地更改Eclipse首选项。你可以转到

来做到这一点
Window > Preferences > Java > Installed JRE’s

HTH