“如何在Java中修复'使用或覆盖已弃用的API并使用-Xlint:deprecation重新编译以获取详细信息”

时间:2019-08-08 09:02:46

标签: java linux hadoop

我想利用Linux来练习Hadoop-MapReduce的示例。 我已经为项目编写了代码,并且在编译时收到一些警告消息。我无法运行它。尝试过许多可能的方法,例如忽略警告等,我仍然无法运行它。在下面,您将找到代码。

import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Iterator;

import org.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.filecache.DistributedCache;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.Mapper.Context;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
import org.apache.hadoop.util.StringUtils;
public class Average{
  public static class Map extends Mapper<Object, Text, Text, IntWritable> {
   public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
  String line = value.toString();
  StringTokenizer script = new StringTokenizer(line, "\n");  while (script.hasMoreTokens()) {
   StringTokenizer scriptLine = new StringTokenizer(script.nextToken());
   Text Name = new Text(scriptLine.nextToken());
   int Score = Integer.parseInt(scriptLine.nextToken());
   context.write(Name, new IntWritable(Score));
  }
 }
}

  public static class Reduce extends Reducer<Text,IntWritable,Text,IntWritable> {
  public void reduce(Text key, Iterable<IntWritable> value, Context context) throws IOException, InterruptedException{
     int numerator = 0;
   int denominator = 0;
   int avg = 0;
   for (IntWritable score : value) {
    numerator += score.get();
    denominator++;
   }
   avg = numerator/denominator; 
   context.write(key, new IntWritable(avg));
         }
 }

public static void main(String[] args) throws Exception {

   Configuration conf = new Configuration();
   String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
         Path dst_path = new Path (otherArgs[1]);
         FileSystem hdfs = dst_path.getFileSystem(conf);

         if (hdfs.exists(dst_path)){
          hdfs.delete(dst_path, true);
         };

            Job job = new Job(conf, "Average");
            job.setJarByClass(Average.class);
            job.setMapperClass(Map.class);
            job.setCombinerClass(Reduce.class);
            job.setReducerClass(Reduce.class);
            job.setOutputKeyClass(Text.class);
            job.setOutputValueClass(IntWritable.class);
            FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
            FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));

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

0 个答案:

没有答案