MapReduce -是否有办法通过CustomOutputFormat类覆盖输出目录



我想覆盖mapreduce中的输出目录,但它抛出异常为"FileAlreadyExists"。是否有办法通过创建自定义输出类来覆盖输出目录?

最简单的方法是检查输出目录是否存在。如果它删除它的所有内容。

要做到这一点,在驱动程序类中使用[FileSystem][1]类。

    Path outputPath = new Path("/user/foor/jobOutput");
    Job job = new Job();

    FileSystem fs = FileSystem.get(outputPath.toUri(),job.getConfiguration());
    fs.delete(outputPath, true);

    FileOutputFormat.setOutputPath(job, outputPath);

MapReduce的输出文件将在HDFS中。HDFS的运行理念是写一次,读多次。因此,您不能覆盖输出目录。你必须删除它,然后通过MapReduce重新写入

相关内容

  • 没有找到相关文章

最新更新