我需要根据过滤条件将输入文件拆分为 2 个输出文件。我的输出目录应如下所示:
/hdfs/base/dir/matched/YYYY/MM/DD
/hdfs/base/dir/notmatched/YYYY/MM/DD
我正在使用MultipleOutputs
类在我的地图函数中拆分我的数据。在我的驱动程序类中,我使用如下:
FileOutputFormat.setOutputPath(job, new Path("/hdfs/base/dir"));
在 Mapper 中,我在下面使用:
mos.write(key, value, fileName); // File Name is generating based on filter criteria
该程序可以正常运行一天。但是在第二天我的程序没有说:
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://nameservice1/hdfs/base/dir already exists
第二天我不能使用不同的基本目录。
我该如何处理这种情况?
注意:我不想读取输入以创建 2 个单独的文件。