Запрос, связанный с уменьшением карты Hadoop - PullRequest
0 голосов
/ 03 января 2012

Сценарий:

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

Вопрос:

Я хочу выполнить эту задачу с помощью Map-Reduce algo.Я не понимаю, как принять оба файла в качестве входных данных в mapper, а также как обрабатывать оба файла на этапе map-карты.

Просьба предложить мне какую-то идею, чтобы я мог ее выполнить?

Ответы [ 2 ]

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

Проверьте раздел 3.5 (Связи отношений) в Интенсивная обработка текста с помощью MapReduce для объединений на стороне карты, объединений на стороне уменьшения и объединений на основе памяти. В любом случае класс MultipleInput используется, чтобы несколько картографов обрабатывали разные файлы в одном задании.

К вашему сведению, вы можете использовать Apache Sqoop для импорта БД в HDFS.

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

Некоторое время назад я написал сокращение карты Hadoop для одного из моих классов. Я сканировал несколько баз данных IMD и производил объединенную информацию об актерах (в основном имя, биография и фильмы, в которых он снимался, были в разных базах данных). Я думаю, что вы можете использовать тот же подход, который я использовал для моей домашней работы: Я написал отдельное сокращение карты, превращая каждый файл базы данных в один и тот же формат, просто поместив двухбуквенный префикс напротив каждой строки, создаваемой картой-сокращением, чтобы иметь возможность указывать «BI» (биография), «MV» (фильмы) и скоро. Затем я использовал все эти созданные файлы в качестве входных данных для моей последней уменьшенной карты, которая обработала их, сгруппировав их желаемым способом.

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

...