#hadoop #hive #hbase
#hadoop #улей #hbase
Вопрос:
У меня есть структура данных в Hadoop со 100 столбцами и несколькими сотнями строк. В большинстве случаев мне нужно запросить 65% столбцов. В этом случае, что лучше использовать HBASE или HIVE? Пожалуйста, посоветуйте.
Комментарии:
1. Спасибо за ответ!! Это имеет смысл.
Ответ №1:
Просто количество столбцов, к которым вы обращаетесь, НЕ является критерием для выбора hbase или hive.
УЛЕЙ (SQL) :
Используйте Hive, когда у вас есть потребности в хранении, и вы хорошо разбираетесь в SQL и не хотите писать задания MapReduce. Однако один важный момент: запросы Hive преобразуются в соответствующее задание MapReduce под капотом, которое выполняется в вашем кластере и выдает вам результат. Улей делает трюк за вас. Но каждая проблема не может быть решена с помощью HiveQL. Иногда, если вам нужна действительно мелкозернистая и сложная обработка, вам может потребоваться убежище MapReduce.
Hbase (база данных NoSQL):
Вы можете использовать Hbase для этой цели. Если у вас есть какие-то данные, к которым вы хотите получить доступ в режиме реального времени, вы можете сохранить их в Hbase.
hbase get 'rowkey'
эффективен, когда вы знаете свой шаблон доступа
Hbase следует CP из CAP Theorm
Согласованность:
Каждый узел в системе содержит одни и те же данные (например, у реплик никогда не бывает недостатка в данных)
Доступность:
Каждый запрос к исправному узлу в системе возвращает ответ
Допуск раздела:
Системные свойства (согласованность и / или доступность) сохраняются, даже если система разделена (связь потеряна) и данные потеряны (узел потерян)
также взгляните на это
Ответ №2:
Очень сложно ответить на вопрос в одной строке.
HBASE — это база данных NoSQL: ваши данные должны хранить денормализованные данные, потому что HBASE очень вреден для joi
ning таблицы.
Улей: вы можете хранить данные в аналогичном формате (нормализованном) в Hive, но преимущества будут видны только при выполнении пакетной обработки.