Java 在Mapreduce中设置job.setInputFormatClass时出错

Java 在Mapreduce中设置job.setInputFormatClass时出错,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我正在运行一个MapReduce程序。我需要以键值对的格式给出输入文本文件。所以如果我写 job.setInputFormatClass(KeyValueTextInputFormat.class); eclipse编译器显示错误,我无法使用InputFormat。 无论如何,我需要将输入的格式设置为KeyValueTextInputFormat 我该怎么做??有什么想法吗 我的代码是 ` package com.iot.dictionary; 导入java.io.IOException; 导

我正在运行一个MapReduce程序。我需要以键值对的格式给出输入文本文件。所以如果我写

job.setInputFormatClass(KeyValueTextInputFormat.class);
eclipse编译器显示错误,我无法使用InputFormat。 无论如何,我需要将输入的格式设置为KeyValueTextInputFormat 我该怎么做??有什么想法吗

我的代码是

`

package com.iot.dictionary;
导入java.io.IOException;
导入org.apache.hadoop.conf.Configuration;
导入org.apache.hadoop.fs.Path;
导入org.apache.hadoop.io.Text;
导入org.apache.hadoop.mapred.KeyValueTextInputFormat;
导入org.apache.hadoop.mapreduce.Job;
导入org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
导入org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
导入org.apache.hadoop.util.GenericOptionsParser;
导入com.iot.dictionary.dictionary.AllTranslationsReducer;
导入com.iot.dictionary.dictionary.WordMapper;
公共类驱动程序2{
公共静态void main(字符串[]args)引发IOException、ClassNotFoundException、InterruptedException{
Configuration conf=新配置();
String[]otherArgs=新的GenericOptionsParser(conf,args);
if(otherArgs.length!=2){
System.err.println(“用法:wordcount”);
系统出口(2);
}
Job Job=新作业(conf,“dictionary”);
System.out.println(“作业->”+Job.toString());
job.setJarByClass(Dictionary.class);
setMapperClass(WordMapper.class);
job.setReducerClass(AllTranslationsReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
作业.setInputFormatClass(KeyValueTextInputFormat.class);
addInputPath(作业,新路径(其他参数[0]);
setOutputPath(作业,新路径(其他参数[1]);
系统退出(作业等待完成(真)?0:1;
}
}

`

如果您使用的是新的Hadoop API(Hadoop 0.20.2及以上版本),则必须从包org.apache.Hadoop.mapreduce.lib.input.KeyValueTextInputFormat导入KeyValueTextInputFormat类,如果您使用的是旧的Hadoop API,则必须从org.apache.Hadoop.mapred.KeyValueTextInputFormat导入它

您可以在代码中看到这一行:

import org.apache.hadoop.mapred.KeyValueTextInputFormat;
换成

import org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat;
希望这有帮助


谢谢

谢谢,即使我导入,我也会收到相同的编译器错误!如何将KeyValueInputFormat设置为作业?请编辑您的问题,并提供与导入的软件包一起使用的基本代码。正如我所猜测的,软件包导入问题。我已经编辑了我的答案,看一看。谢谢
import org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat;