出现错误的原因是什么?我能够成功地在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 words .
1. ERROR in WordCount.java (at line 12)
public static class Map extends MapReduceBase implements Mapper <LongWritable, Text, Text, IntWritable>
类型映射器不是泛型;它不能用参数<长文,文字,文字,>
2. ERROR in WordCount.java (at line 12)
public static class Map extends MapReduceBase implements Mapper <LongWritable, Text, Text, IntWritable> {
语法错误,参数化类型仅在源级别为5.0时可用
似乎你把一些旧版本的Hadoop和新版本的Hadoop混在一起了。此外,您还使用了旧的mapreduce API i. mapred
。我建议您使用较新的API(即mapreduce
)重新编写程序,而不要将旧版本的jars
与新版本混合。
而且,看起来您正在尝试使用与Eclipse配置使用的jre不同的jre。使用java -version
检查机器上安装的java版本,并相应地更改Eclipse首选项。你可以通过
Window > Preferences > Java > Installed JRE’s
HTH