0
我是Hadoop的新手。我有三個單獨的文件,包含map,reduce和mapreduce代碼。mapper和reducer文件被編譯,但主類拋出在setmapperclass和setreducerclass方法中找不到符號錯誤。這是main :Hadoop的setMapperClass和SetReducerClass不工作?
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.Mapper;
public class MaxTemperature {
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.err.println("Usage: MaxTemperature <input path> <output path>");
System.exit(-1);
}
Job job = new Job();
job.setJarByClass(MaxTemperature.class);
job.setJobName("Max temperature");
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.setMapperClass(MaxTemperatureMapper.class); //error cannot find symbol
job.setReducerClass(MaxTemperatureReducer.class); //error cannot find symbol
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
}}
的Hadoop版本的使用2.5.1和我把它用
hdfs com.sun.tools.javac.Main /usr/local/hadoop/share/hadoop/mapreduce/MaxTemperature.java
我用同樣的命令編譯映射器和減速機程序編譯。
檢查MaxTemperatureMapper和MaxTemperatureReducer可用在課程路徑 – Tinku 2014-10-19 06:10:24
無論如何,你需要一個Jar來運行這個工作(如果不忽略這個評論)。看看http://docs.oracle.com/javase/tutorial/deployment/jar/build.html。我再次不知道命令'hdfs com.sun.tools.javac.Main ..'。 – blackSmith 2014-10-20 07:44:42