这是我的代码,不知怎么的,我在第三个文件的第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
暂无答案!
目前还没有任何答案,快来回答吧!