Как мне добавить файл в hadoop? - PullRequest
1 голос
/ 19 января 2011

Я хочу создать файл в HDFS, содержащий несколько строк, каждая из которых генерируется отдельным вызовом map.Меня не волнует порядок строк, просто они все добавляются в файл.Как мне это сделать?

Если это невозможно, то существует ли стандартный способ создания уникальных имен файлов, чтобы поместить каждую строку вывода в отдельный файл?

Ответы [ 2 ]

1 голос
/ 19 января 2011

В настоящее время нет способа добавить существующий файл в hadoop, но это не то, что вы хотите сделать в любом случае. Звучит так, будто вы хотите, чтобы вывод вашей работы Map Reduce был в одном файле, что вполне возможно. Количество выходных файлов (меньше или) равно количеству редукторов, поэтому, если вы установите количество редукторов на 1, вы получите один выходной файл.

Однако прежде чем идти и делать это, подумайте, действительно ли вы этого хотите. Вы будете создавать узкое место в своем конвейере, где нужно будет передать все ваши данные через одну машину для этого сокращения. В распределенной файловой системе HDFS разница между наличием одного файла и нескольких файлов довольно прозрачна. Если вам нужен один файл за пределами кластера, лучше использовать getmerge из инструментов файловой системы.

1 голос
/ 19 января 2011

И ваша карта, и функции сокращения должны выводить строки. Другими словами, ваша функция сокращения - это сквозная функция, которая мало что делает. Установите количество редукторов равным 1. В результате вы получите список всех строк в одном файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...