我有一个 reducer,它需要将结果输出到不同的目录,以便我们以后可以将输出用作 Hive 作为分区表的输入。(Hive 基于文件夹名称创建分区)。为了写出这些位置,我们目前没有使用任何 Hadoop 框架来完成这项工作,我们只是在“Hadoop 背后”的不同位置写出,可以这么说。换句话说,我们没有使用 hadoop 的 API 来输出这些文件。
我们遇到了mapred.reduce.tasks.speculative.execution
set to的问题true
。我理解是这种情况,因为同一任务的多个任务尝试正在写入同一位置。
有没有办法正确使用Hadoop的API从同一个reducer输出到几个不同的文件夹,这样我也可以使用mapred.reduce.tasks.speculative.execution=true
?(我知道 MultipleOutputs,我不确定它是否支持推测执行。)
如果是这样,有没有办法做到这一点并输出到 S3?