- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 MapReduce 驱动程序的 addInputPath 方法中遇到错误。错误是
"The method addInputPath(Job, Path) in the type FileInputFormat is not applicable for the arguments (JobConf, Path)"
这是我的驱动程序代码:
package org.myorg;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
public class WordCount extends Configured implements Tool{
public int run(String[] args) throws Exception
{
//creating a JobConf object and assigning a job name for identification purposes
JobConf conf = new JobConf(getConf(), org.myorg.WordCount.class);
conf.setJobName("WordCount");
//Setting configuration object with the Data Type of output Key and Value
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
//Providing the mapper and reducer class names
conf.setMapperClass(WordCountMapper.class);
conf.setReducerClass(WordCountReducer.class);
//the hdfs input and output directory to be fetched from the command line
**FileInputFormat.addInputPath(conf, new Path(args[0]));**
FileOutputFormat.setOutputPath(conf, new Path(args[1]));
JobClient.runJob(conf);
return 0;
}
public static void main(String[] args) throws Exception
{
int res = ToolRunner.run(new Configuration(), new WordCount(),args);
System.exit(res);
}
}
我导入了正确的 org.apache.hadoop.mapred.FileOutputFormat。
我的 WordCountMapper 正确实现了 Mapper。
FileOutputFormat.setOutputPath 工作正常。
为什么 addInputhPaths 会抛出错误?
最佳答案
问题是您混合了旧 API (.mapred.
) 和新 API (.mapreduce.
)。这两个 API 不兼容。
我建议您使用新 API 中的所有对象,而不使用旧 API 中的任何对象。也就是说,不要使用 JobConf
或 JobClient
。请改用 Job
和 Configuration
。并确保您从包含 .mapreduce.
的导入中使用 Mapper
、Reducer
等。不是 .mapred.
.
关于hadoop - MapReduce驱动的addInputPath错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20549180/
最近版本的 Hadoop 已经使用 FileInputFormat.setInputDirRecursive 轻松支持嵌套输入目录,它依赖于 mapreduce.input.fileinputform
嘿,这更像是一个 java 问题,但它与 Hadoop 相关。 我的 Map Reduce java 作业中的代码中有这一行: JobConf conf= new JobConf(WordCount
我正在尝试实现 eclipse 文档中给出的简单字数统计。相同的程序在终端上运行,但是当我尝试在 eclipse 中运行它时,我从运行配置中传递参数 参数是: /home/rachit/wordcou
我有一个类似于 HDFS 的结构 a/b/file1.gz a/b/file2.gz a/c/file3.gz a/c/file4.gz 我用的是经典模式 FileInputFormat.addInp
我是一名优秀的程序员,十分优秀!