hadoop: поддержка нескольких выходов для заданий Map Reduce - PullRequest
1 голос
/ 24 сентября 2011

Похоже, что поддерживается в Hadoop ( ссылка ), но я не знаю, как это использовать.

Я хочу:

a.) Map - Read a huge XML file and load the relevant data and pass on to reduce  
b.) Reduce - write two .sql files for different tables  

Почему я выбираю карту / уменьшить, потому что я должен сделать это для более чем 100k(may be many more) XML-файлов, находящихся на диске. любые лучшие предложения приветствуются

Любые ресурсы / учебные пособия, объясняющие, как использовать это, приветствуются.

Я использую Python и хотел бы узнать, как этого добиться, используя streaming

Спасибо

1 Ответ

0 голосов
/ 24 сентября 2011

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

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

...