Соотнесение входных файлов с выходными файлами - PullRequest
1 голос
/ 24 января 2012

У меня есть работа MR MR.Мой код на C ++.Это только картографическая работа, без редуктора.Входными данными для задания является каталог, содержащий три файла.Работа создает 3 картографа.Каждый преобразователь обрабатывает один входной файл и создает один выходной файл в другом формате.

Входные файлы имеют вид:

MyDir/file1
MyDir/file2
MyDir/file3

Выходной файл имеет вид:

MyDir/Output/part-00000
MyDir/Output/part-00001
MyDir/Output/part-00002

Iхочу соотнести входные файлы с выходными файлами.Например, входной файл MyDir/file1 может соответствовать выходному файлу MyDir/Output/part-00002, то есть преобразователь, который обработал входной файл MyDir/file1, мог создать выходной файл MyDir/Output/part-00002.

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

Ответы [ 2 ]

0 голосов
/ 25 января 2012

При проектировании Hadoop единственное отношение, на которое вы можете положиться, без явного присвоения имен выходным файлам согласно другому ответу, состоит в том, что количество выходных файлов соответствует количеству выполняемых конечных задач, обычно редукторов. (картографы в вашем случае, так как вы не используете никаких редукторов).

Если позже Hadoop решит запустить больше картографов / редукторов вместо 3 (большие входные файлы, больше доступных узлов), вы получите другое количество выходных файлов.

0 голосов
/ 24 января 2012

Один из способов, который я могу придумать, - это иметь одинаковые имена файлов i / p и o / p проекта. Получите имя входного файла ( map.input.file свойство среды), которое обрабатывает маппер, а затем используйте его в методе MultipleOutputFormat # generateFileNameForKeyValue .

...