Ответ - нет, это было бы ненужным осложнением для редкого варианта использования.
Что вы должны сделать
опция 1 - добавить код в конец вашей команды hadoop
int result = job.waitForCompletion(true) ? 0 : 1;
if (result == 0) { // status code OK
// ls job output directory, collect part-r-XXXXX file names
// create HDFS readers for files
// merge them in a single file in whatever way you want
}
Все необходимые методыприсутствует в hadoop FileSystem api.
option 2 - добавить задание для объединения файлов
Вы можете создать общее задание hadoop, которое будет принимать имя каталога в качестве ввода и передавать все как-на единственном редукторе, который объединит результаты в один выходной файл.Вызовите эту работу в конвейере вместе с вашей основной работой.
Это будет работать быстрее при больших входах.