Массовая загрузка HBase в несколько таблиц

Мы используем методы массовой загрузки HBase, как описано в: http://blog.cloudera.com/blog/2013/09/how-to-use-hbase-bulk-loading-and-why/ (то есть создание H-файлов напрямую с использованием HFileOutputFormat)

Мы должны использовать эту опцию, чтобы предварительно заполнить кластер HBase всеми данными, которые у нас уже есть в устаревшей системе (ах).

Поскольку HBase не поддерживает вторичные таблицы (или индексы), мы поддерживаем вторичные таблицы (или индексы) на уровне приложения.

Теперь вопрос заключается в том, как использовать технику массовой загрузки для создания H-файлов различных таблиц (основная таблица и вторичные таблицы / индексы). Есть ли какой-либо формат с несколькими HFileOutputFormat (например, HFileMultiOutputFormat)?

Я понимаю, что мы могли бы создать несколько заданий MR и выполнять каждое задание отдельно. Цена связана с «чтением» такого большого количества данных (более нескольких ТБ). Я хотел найти способ, позволяющий читать один раз и писать несколько раз. Объединение заданий MR не помогает, так как для всех задач карты требуются одни и те же данные, а цепочка ограничивает задачу 2-й карты, чтобы получить результат 1-й задачи карты.

Похожие вопросы задавались здесь, здесь. Но они остались без ответа, поэтому попробуйте снова.


person olnrao    schedule 04.06.2014    source источник


Ответы (1)


Прежде всего, очень актуальное требование.

Первый шаг к реализации - изучить и понять код HFileOutputFormat: HFileOutputFormat

Вас интересует структура каталогов, которую она создает с использованием семейств столбцов. Вам нужно создать структуру каталогов с помощью table -> Column Family -> HFile

Вы можете использовать несколько выходов для записи данных таблицы различий.

person Venkat    schedule 04.06.2014
comment
Желаю, чтобы вы более четко прочитали мой вопрос. Я не уверен, кто отметил этот вопрос как ответ. Потому что вы только что повторили то, что у меня есть в моем вопросе. - person olnrao; 29.03.2016