map-reduce:java使用或重写不推荐使用的api错误

b4wnujal  于 2021-05-27  发布在  Hadoop
关注(0)|答案(0)|浏览(191)

这是我的代码,不知怎么的,我在第三个文件的第33行和第34行得到了一个错误。有3个java文件
MaximumTempMapper.java MaximumTempReducer.java 最后一个错误是 MaxTemperatureClass.java 这是我的第一个Map缩小程序。我不是这门语言的Maven。请帮助我理解并解决这个错误。下面是所有3个文件的代码。 MaximumTempMapper.java 编写成功

//Mapper task to find the maximum temperature of the year

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class MaximumTempMapper extends Mapper <LongWritable, Text, Text, IntWritable >
{

    public void map (LongWritable key, Text value, Context context ) throws IOException, InterruptedException
    {
        String line = value.toString();
        String  year = line.substring(0,4);
        int airTemp ;
        if (line.charAt (47) == '+')
            airTemp = Integer.parseInt (line.substring(48,50));
        else 
            airTemp = Integer.parseInt (line.substring(47,49));

        context.write(new Text(year), new IntWritable (airTemp));
    }

}
``` `MaximumRempReducer.java` 编译成功

//Reducer task to find the maximum temperature of the year

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class MaximumTempReducer extends Reducer <Text , IntWritable, Text , IntWritable>
{

public void reduce (Text key , Iterable <IntWritable> values , Context context) throws IOException, InterruptedException
{
    int maxtemp = Integer.MIN_VALUE ;
    for (IntWritable value : values)
    {
        maxtemp = Math.max(maxtemp, value.get());
    }

    context.write(key , new IntWritable(maxtemp));
}

}

最后一个文件在下面两行出现错误

job.setMapperClass(MaximumTempMapper.class);
job.setReducerClass(MaximumTempReducer.class);

编译时 `MaxTemperatureClass.java` ```
//Application to find the maximum temperature in the weather dataset

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.conf.Configuration;

public class MaxTemperatureClass
{
    public static void main (String args[]) throws Exception
    {
        if (args.length!=2)
        {
        System.err.println("Use : MaxTemperature <input path> <output path>");
        System.exit(-1);
        }
        Configuration conf = new Configuration ();
        Job job = new Job(conf,"MaxTemperatureClass");
        job.setJarByClass(MaxTemperatureClass.class);
        job.setJar("MaxTemperatureClass.jar");

        job.setJobName("Max Temperature");

        FileInputFormat.addInputPath(job, new Path (args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        job.setMapperClass(MaximumTempMapper.class);
        job.setReducerClass(MaximumTempReducer.class);

        job.setInputFormatClass(TextInputFormat.class);
        job.setOutputFormatClass(TextOutputFormat.class);
        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

错误

MaxTemperatureClass.java:33: error: cannot find symbol
        job.setMapperClass(MaximumTempMapper.class);
                           ^
  symbol:   class MaximumTempMapper
  location: class MaxTemperatureClass
MaxTemperatureClass.java:34: error: cannot find symbol
        job.setReducerClass(MaximumTempReducer.class);
                            ^
  symbol:   class MaximumTempReducer
  location: class MaxTemperatureClass
Note: MaxTemperatureClass.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题