Hadoop MultipleOutputFormat для HFileOutputFormat и TextOutputFormat - PullRequest
1 голос
/ 25 февраля 2012

Я выполняю задание ETL с Hadoop, где мне нужно вывести действительные преобразованные данные в HBase и внешний индекс для этих данных в MySQL. Сначала я подумал, что я мог бы использовать MultipleOutputFormats для экспорта преобразованных данных с помощью HFileOutputFormat (ключ - это текст, а значение - ProtobufWritable), а индекс - в TextOutputFormat (ключ - это текст, а значение - это текст).

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

Мне интересно, если A) это кажется разумным подходом с точки зрения эффективности и сложности, и B) как это сделать с помощью API дистрибутива CDH3, если это возможно.

1 Ответ

1 голос
/ 26 февраля 2012

Если вы используете старый API MapReduce, тогда вы можете использовать MultipleOutputs и записывать в несколько форматов вывода.

Однако, если вы используете новый API MapReduce, я 'Я не уверен, что есть способ сделать то, что ты пытаешься сделать.Возможно, вам придется заплатить цену за выполнение другой работы MapReduce на тех же входах.Но прежде чем сказать наверняка, мне придется провести дополнительные исследования.Возможно, есть способ взломать старый + новый API, чтобы позволить вам использовать MultipleOutputs с новым API.

РЕДАКТИРОВАТЬ: Посмотрите на эту публикацию .Возможно, вы можете реализовать свой собственный OutputFormat и обернуть соответствующие RecordWriters в OutputFormat и использовать его для записи в несколько форматов вывода.

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