import java.io.IOException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Formatter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.Counters;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.FileSplit;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.MapReduceBase;
import org.apache.hadoop.mapred.Mapper;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reducer;
import org.apache.hadoop.mapred.Reporter;
import org.apache.hadoop.mapred.RunningJob;
import org.apache.hadoop.mapred.TextInputFormat;
import org.apache.hadoop.mapred.lib.MultipleOutputs;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;public class maxtemperature {        public class MaxTemperatureMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable>{                private static final int MISSING = 9999;
                public void map(LongWritable key, Text value,
                                OutputCollector<Text, Text> output, Reporter reporter)
                                throws IOException {
                        String line = value.toString();
                        String year = line.substring(15,19);
                        int airTemperature;
                        if(line.charAt(12) == '+'){
                                airTemperature = Integer.parseInt(line.substring(11,12));
                        }else{
                                airTemperature = Integer.parseInt(line.substring(11,12));
                        }
                        output.collect(new Text(year),new IntWritable(airTemperature));
                }
        }        public class MaxTemperatureReducer extends MapReduceBase implements Mapper<Text, IntWritable, Text, IntWritable>{                public void reduce(Text key, Iterator<IntWritable> values,
                                OutputCollector<Text, Text> output, Reporter reporter)
                                throws IOException {                        int maxValue = Integer.MIN_VALUE;
                        while(values.hasNext()){
                                maxValue = Math.max(maxValue, values.next().get());
                        }
                        output.collect(key,new IntWritable(maxValue));
                }
        }        public static void main(String[] args) throws IOException {
                if(args.length != 2){
                        System.err.println("Usage:MaxTemperature <input path> <output path>");
                        System.exit(-1);
                }                JobConf conf = new JobConf(maxtemperature.class);
                conf.setJobName("Max temperature");                FileInputFormat.addInputPath(conf,new Path(args[0]));
                FileOutputFormat.setOutputPath(conf,new Path(args[1]));                conf.setMapperClass(MaxTemperatureMapper.class);
                conf.setReducerClass(MaxTemperatureReducer.class);                conf.setOutputKeyClass(Text.class);
                conf.setOutputValueClass(IntWritable.class);                JobClient.runJob(conf);
        }
}
不知道为什么运行的时候一直都有错误,相关的都安装好了
以下是错误:
maxtemperature.java:35: maxtemperature.MaxTemperatureMapper 不是抽象的,并且未覆盖 org.apache.hadoop.mapred.Mapper 中的抽象方法 map(org.apache.hadoop.io.LongWritable,org.apache.hadoop.io.Text,org.apache.hadoop.mapred.OutputCollector<org.apache.hadoop.io.Text,org.apache.hadoop.io.IntWritable>,org.apache.hadoop.mapred.Reporter)
        public class MaxTemperatureMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable>{
               ^
maxtemperature.java:49: 无法将 org.apache.hadoop.mapred.OutputCollector<org.apache.hadoop.io.Text,org.apache.hadoop.io.Text> 中的 collect(org.apache.hadoop.io.Text,org.apache.hadoop.io.Text) 应用于 (org.apache.hadoop.io.Text,org.apache.hadoop.io.IntWritable)
                        output.collect(new Text(year),new IntWritable(airTemperature));
                              ^
maxtemperature.java:53: maxtemperature.MaxTemperatureReducer 不是抽象的,并且未覆盖 org.apache.hadoop.mapred.Mapper 中的抽象方法 map(org.apache.hadoop.io.Text,org.apache.hadoop.io.IntWritable,org.apache.hadoop.mapred.OutputCollector<org.apache.hadoop.io.Text,org.apache.hadoop.io.IntWritable>,org.apache.hadoop.mapred.Reporter)
        public class MaxTemperatureReducer extends MapReduceBase implements Mapper<Text, IntWritable, Text, IntWritable>{
               ^
maxtemperature.java:63: 无法将 org.apache.hadoop.mapred.OutputCollector<org.apache.hadoop.io.Text,org.apache.hadoop.io.Text> 中的 collect(org.apache.hadoop.io.Text,org.apache.hadoop.io.Text) 应用于 (org.apache.hadoop.io.Text,org.apache.hadoop.io.IntWritable)
                        output.collect(key,new IntWritable(maxValue));
                              ^
maxtemperature.java:80: 无法将 org.apache.hadoop.mapred.JobConf 中的 setReducerClass(java.lang.Class<? extends org.apache.hadoop.mapred.Reducer>) 应用于 (java.lang.Class<maxtemperature.MaxTemperatureReducer>)
                conf.setReducerClass(MaxTemperatureReducer.class);
                    ^
注意:maxtemperature.java 使用或覆盖了已过时的 API。
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
5 错误请问有什么问题,应该怎么修改?