Redutor Hadoop: Como posso produzir em vários diretórios usando a execução especulativa?

Eu tenho um redutor que precisa para resultados de saída para diretórios diferentes para que possamos posteriormente usar a saída como entrada para o Hive como uma tabela particionada. (Hive cria partições com base no nome da pasta). Para escrever para esses locais, atualmente não estamos usando nenhuma estrutura do Hadoop para fazer isso, estamos apenas escrevendo para locais separados "por trás das costas do Hadoop", por assim dizer. Em outras palavras, não estamos usando a API do hadoop para gerar esses arquivos.

Nós tivemos problemas commapred.reduce.tasks.speculative.execution definido comotrue. Eu entendo que este seja o caso, porque várias tentativas de tarefas para a mesma tarefa estão sendo gravadas no mesmo local.

Existe uma maneira de usar corretamente a API do Hadoop para gerar várias pastas diferentes do mesmo redutor, de forma que eu também possa usarmapred.reduce.tasks.speculative.execution=true ? (Eu sei sobre MultipleOutputs, que não tenho certeza suporta a execução especulativa.)

Se assim for, há uma maneira de fazer issoe saída para S3?

questionAnswers(2)

yourAnswerToTheQuestion