我想覆盖mapreduce中的输出目录,但它会抛出异常“FileAlreadyExists”。有没有办法通过创建自定义输出类来覆盖输出目录?
答案 0 :(得分:0)
MapReduce的输出文件将在HDFS中。 HDFS运行一次写入和多次读取的概念。所以你不能覆盖输出目录。您必须删除它并通过MapReduce再次写入
答案 1 :(得分:0)
最简单的方法是检查输出目录是否存在。如果确实删除了所有内容。
为此,请在驱动程序类中使用[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);