2014-11-28 3 views
0

Не могли бы вы посоветовать, что было бы лучшим способом для моего требования.Обновление/вставка Hbase с использованием Get/Put

У меня есть ниже

  1. табличного Hbase
  2. Входной файл в HDFS

мое требование, как показано ниже

  1. Прочитайте входной файл и извлечь ключ , Используя ключ, получите данные от Hbase.
  2. Проведите сравнение, чтобы проверить.
  3. Если сравнение не удалось, вставьте
  4. Если сравнение - успешное обновление.

Я знаю, что могу использовать, чтобы получить данные и положить их обратно. Это лучший способ продвижения вперед. Я надеюсь, что буду использовать mapreduce, чтобы я мог запустить процесс параллельно.

ответ

0

HBase имеет checkAndPut() и операцию checkAndDelete(). который позволяет вам выполнить put или delete, если у вас есть ожидаемое значение (сравните = NO_OP, если вы не заботитесь о значении, а просто о ключе). https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html

+0

Спасибо за комментарий. Я немного новичок в Hbase, поэтому мне было интересно, поставил ли checkAndPut() в mapreduce? , на всякий случай, если у вас есть какая-либо ссылка, на которую я могу ссылаться, это также будет очень полезно. – user299698

0

В зависимости от размера вашей проблемы я действительно рекомендую здесь немного другой подход. Хотя, вероятно, возможно реализовать HBase, помещаемый в работу MapReduce, это похоже на довольно сложную задачу.

Я бы рекомендовал загружать данные из HBase в MapReduce, соединяющие две таблицы, а затем экспортировать их обратно в HBase. Использование Свинья было бы довольно легко достичь. Взгляните на Pig HBaseStorage. Идя по этому маршруту, вы должны загрузить оба файла, присоединиться к ним и затем записать обратно в HBase. Если все есть, сравнивает ключи, это может быть достигнуто в 5 строках PigLatin.

HTH

Смежные вопросы