Я сделал это, просто записав вывод непосредственно из моего метода редуктора в S3, используя инструментарий S3. Поскольку я работал на EC2, это было быстро и бесплатно.
В общем, вы хотите, чтобы Hadoop максимально обрабатывал ваш ввод и вывод для чистых картографов и редукторов; и, конечно, вы хотите писать в S3 в самом конце вашего конвейера, чтобы позволить движению кода Hadoop выполнять свою работу над HDFS.
В любом случае, я рекомендую выполнить все ваши разбиения данных и записать все выходные наборы на S3 в окончательной задаче сокращения, по одному на каждый файл S3. Это помещает в ваш код как можно меньше логики писателя. Это окупилось для меня, потому что я получил минимальный инструментарий Hadoop S3, который я использовал для нескольких потоков задач.
Мне нужно было записать в S3 код моего редуктора, потому что файловые системы S3 / S3n не были зрелыми; теперь они могут работать лучше.