Hadoop Reducer: ¿Cómo puedo hacer salidas a múltiples directorios utilizando una ejecución especulativa?

Tengo un reductor que necesita enviar resultados a diferentes directorios para que luego podamos usar la salida como entrada para Hive como una tabla particionada. (Hive crea particiones basadas en el nombre de la carpeta). Para poder escribir en estas ubicaciones, actualmente no estamos utilizando ningún marco de Hadoop para lograr esto, simplemente estamos escribiendo en ubicaciones separadas "detrás de la espalda de Hadoop", por así decirlo. En otras palabras, no estamos utilizando la API de hadoop para generar estos archivos.

Tuvimos problemas conmapred.reduce.tasks.speculative.execution ajustado atrue. Entiendo que este es el caso porque múltiples intentos de tarea para la misma tarea se escriben en la misma ubicación.

¿Hay alguna manera de usar correctamente la API de Hadoop para enviar a varias carpetas diferentes desde el mismo reductor de modo que también pueda usarmapred.reduce.tasks.speculative.execution=true ? (Sé sobre MultipleOutputs, que no estoy seguro de que admita la ejecución especulativa).

Si es así, ¿hay alguna manera de hacer eso?y salida a S3?

Respuestas a la pregunta(2)

Su respuesta a la pregunta