Я пытаюсь написать задание MapReduce, которое анализирует CSV файл, сохраняет данные в HBase и выполняет функцию уменьшения за один раз. В идеале я бы хотел
Я знаю, как сделать 1 и 2 с помощью HBase MultiTableOutputFormat
, но не MultiTableOutputFormat
, как делать 3 и 4.
Любые указатели на то, как это сделать, очень ценятся.
У меня есть несколько соображений о том, как это сделать:
Для 1 и 2 у меня был бы ImmutableBytesWriteable
как ключ, а MultiTableOutputFormat
позаботится о хранении из Mapper. Но для 3 я хотел бы, чтобы ключ был Text.
Для # 4, должен ли я делать это в Mapper
mapper читает csv, устанавливая KeyValueTextInputFormat.
В коде картографа есть некоторая логика, чтобы отличать хорошие и плохие записи и помещать их в Hbase, используя Put (Hbase Api calls).
В настройке Mapper обработчик hbaseTable может быть проинтегрирован.
Хорошая запись может быть передана редуктору с использованием context.write (ключ, значение) и собрана в редукторе