hadoop作业刚刚结束

jvidinwx  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(367)

我在hadoop上遇到了一个相当奇怪的问题。
我写了一个mr作业,结果就是这样,没有执行map或reduce代码。它生成输出文件夹,但该文件夹为空。我看没有理由这样做。
我甚至用默认的mapper和reducer来尝试这个,只是为了找到问题,但是我没有得到异常,没有错误,作业只是完成并生成一个空文件夹。下面是最简单的驱动程序:

Configuration conf = new Configuration();

    //DistributedCache.addCacheFile(new URI(firstPivotsInput), conf);

    Job pivotSelection = new Job(conf);
    pivotSelection.setJarByClass(Driver.class);
    pivotSelection.setJobName("Silhoutte");

    pivotSelection.setMapperClass(Mapper.class);
    pivotSelection.setReducerClass(Reducer.class);

    pivotSelection.setMapOutputKeyClass(IntWritable.class);
    pivotSelection.setMapOutputValueClass(Text.class);

    pivotSelection.setOutputKeyClass(IntWritable.class);
    pivotSelection.setOutputValueClass(Text.class);

    FileInputFormat.addInputPath(pivotSelection, new Path("/home/pera/WORK/DECOMPRESSION_RESULT.csv"));
    FileOutputFormat.setOutputPath(pivotSelection, new Path("/home/pera/WORK/output"));

    pivotSelection.setNumReduceTasks(1);

    pivotSelection.waitForCompletion(true);

在这样一个简单的例子中会有什么问题?

new9mtju

new9mtju1#

最简单的解释是输入路径( "/home/pera/WORK/DECOMPRESSION_RESULT.csv" )不包含hdfs上的任何内容。您可以通过map\u input\u records计数器的值来验证。您还可以使用 hadoop dfs -ls /home/pera/WORK ,或者您甚至可以通过 hadoop dfs -cat /home/pera/WORK/DECOMPRESSION_RESULT.csv | head . (或者 -text 而不是 -cat 如果是压缩的)。
另一个问题可能是reducer有一个特殊的(if)条件,对于每个mapper的输出都失败,但是在identity mapper和reducer的情况下,这个条件不应该成立,所以我相信是前者。

相关问题