Linux Hadoop显示的映射输入记录数与目录中所有文件中的行数不同
我正在试验Hadoop 2.2.0,并创建了一个简单的唯一行标识符程序。目前,我的程序接收一个目录,我认为应该从我在目录中指定的文件中传递映射 然而,当我在linux机器上执行Linux Hadoop显示的映射输入记录数与目录中所有文件中的行数不同,linux,hadoop,Linux,Hadoop,我正在试验Hadoop 2.2.0,并创建了一个简单的唯一行标识符程序。目前,我的程序接收一个目录,我认为应该从我在目录中指定的文件中传递映射 然而,当我在linux机器上执行cat | wc-l时,我看到我的计数是36063,但当我的MapReduce作业正在运行时,我看到:Map input records=64974 这是一个单节点运行,我使用的是本地文件系统 这是我的作业设置信息: job.setInputFormatClass(TextInputFormat.class); job.s
cat | wc-l
时,我看到我的计数是36063,但当我的MapReduce
作业正在运行时,我看到:Map input records=64974
这是一个单节点运行,我使用的是本地文件系统
这是我的作业
设置信息:
job.setInputFormatClass(TextInputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(NullWritable.class);
job.setOutputFormatClass(TextOutputFormat.class);
FileInputFormat.setInputPaths(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
这是我的Map
功能:
public class Map extends Mapper<LongWritable, Text, Text, NullWritable> {
private static final NullWritable nullWritable = NullWritable.get();
@Override
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
context.write(value, nullWritable);
}
}
公共类映射扩展映射器{
private static final nullwriteable nullwriteable=nullwriteable.get();
@凌驾
受保护的void映射(LongWritable键、文本值、上下文)引发IOException、InterruptedException{
write(值,可空写);
}
}
是什么原因导致这次清点被取消
//编辑:
我相信这一切都可能是由一些二进制文件引起的。如果我使用基于文本的文件,一切都正确 您指的是本地文件系统还是HDFS?输入/输出路径通常是后者 其他调试提示:
- 打印出M/R驱动程序内的路径李>
- 对于f-in;hadoop dfs-cat$f | wc-l
\r\n
。