Как Hive сравнивается с HBase? - PullRequest
       27

Как Hive сравнивается с HBase?

56 голосов
/ 23 августа 2008

Мне интересно узнать, как недавно выпущенный (http://mirror.facebook.com/facebook/hive/hadoop-0.17/) Hive по сравнению с HBase с точки зрения производительности. SQL-подобный интерфейс, используемый Hive, очень предпочтительнее реализованного нами HBase API. .

Ответы [ 7 ]

49 голосов
/ 31 августа 2008

Трудно найти много о Hive, но я нашел этот фрагмент на сайте Hive, который сильно склоняется в пользу HBase (жирным шрифтом добавлено):

Hive основан на Hadoop, который является системой пакетной обработки. Соответственно, эта система не делает и не может обещать низкие задержки при запросах . Парадигма здесь строго состоит в том, чтобы отправлять задания и получать уведомление о завершении заданий, а не в режиме реального времени. В результате его не следует сравнивать с такими системами, как Oracle, где анализ выполняется на значительно меньшем количестве данных, но анализ выполняется гораздо более итеративно, а время отклика между итерациями составляет менее нескольких минут. Для запросов Hive время ответа даже для самых маленьких заданий может составлять порядка 5-10 минут, а для более крупных заданий это может даже составлять часы.

Поскольку HBase и HyperTable - это все о производительности (смоделированы на Google BigTable), они звучат так, как будто они будут намного быстрее, чем Hive, за счет функциональности и более высокой кривой обучения (например, у них нет объединений). или SQL-подобный синтаксис).

11 голосов
/ 04 июня 2010

С одной стороны, Hive состоит из пяти основных компонентов: грамматики и анализатора, подобного SQL, планировщика запросов, механизма выполнения запросов, хранилища метаданных и столбчатого макета хранилища. Основное внимание уделяется аналитическим рабочим нагрузкам в стиле хранилища данных, поэтому поиск значений по ключам с низкой задержкой не требуется.

HBase имеет собственный репозиторий метаданных и столбчатый макет хранилища. Можно создавать запросы HiveQL по таблицам HBase, что позволяет HBase использовать преимущества грамматики и анализатора Hive, планировщика запросов и механизма выполнения запросов. Подробнее см. http://wiki.apache.org/hadoop/Hive/HBaseIntegration.

8 голосов
/ 26 июня 2009

Hive - это аналитический инструмент. Как и свинья, он был разработан для специальной обработки потенциально огромных объемов данных за счет использования функции уменьшения карты. Думайте террабайты. Представьте, что вы пытаетесь сделать это в реляционной базе данных ...

HBase - хранилище значений ключей на основе столбцов на основе BigTable. Вы не можете выполнять запросы сами по себе, хотя вы можете запускать задания по сокращению карты через HBase. Основной вариант использования - выборка строк по ключу или сканирование диапазонов строк. Основной особенностью является возможность иметь локальность данных при сканировании по диапазонам ключей строк для «семейства» столбцов.

5 голосов
/ 06 июня 2010

По моим скромным познаниям, улей более сравним с свиньей Hive похож на SQL, а Pig основан на скриптах. Hive кажется более сложным с оптимизацией запросов и механизмами выполнения, а также требует, чтобы конечный пользователь указал параметры схемы (раздел и т. Д.). Оба предназначены для обработки текстовых файлов или sequenceFiles.

HBase предназначен для хранения и извлечения данных значения ключа ... вы можете сканировать или фильтровать эти пары значений ключа (строки). Вы не можете выполнять запросы к строкам (ключ, значение).

3 голосов
/ 15 февраля 2016

Hive и HBase используются для различных целей .

Улей:

Плюсы:

  1. Apache Hive - это инфраструктура хранилища данных , построенная на основе Hadoop .
  2. Это позволяет запрашивать данные, хранящиеся в HDFS , для анализа через HQL , SQL-подобный язык , который будет преобразован в серию Карта Уменьшить количество рабочих мест
  3. Он запускает только пакетных процессов в Hadoop.
  4. это JDBC-совместимый , он также интегрируется с существующими инструментами на основе SQL
  5. Улей поддерживает разделов
  6. Поддерживается аналитический запрос данных , собранных за определенный период времени

Минусы:

  1. В настоящее время он не поддерживает операторы обновления
  2. Должна быть предусмотрена предопределенная схема для сопоставления файлов и каталогов с колонками

HBase:

Плюсы:

  1. Масштабируемая распределенная база данных , которая поддерживает структурированное хранилище данных для больших таблиц
  2. Предоставляет произвольный доступ в режиме реального времени для чтения / записи к вашим Большим данным. Операции HBase выполняются в режиме реального времени на его базе данных, а не на заданиях MapReduce
  3. поддерживает разделы для таблиц, и таблицы далее разбиваются на семейства столбцов
  4. Горизонтальное масштабирование с огромным количеством данных с помощью Hadoop
  5. Предоставляет доступ к данным на основе ключа при сохранении или получении. поддерживает добавление или обновление строк.
  6. Поддерживает версионирование данных.

Минусы:

  1. Запросы HBase написаны на пользовательском языке, который необходимо выучить
  2. HBase не полностью совместим с ACID
  3. Его нельзя использовать со сложными шаблонами доступа (например, соединениями)
  4. Это также не полная замена HDFS при выполнении большого пакета MapReduce

Резюме:

Hive можно использовать для аналитических запросов, а HBase - для запросов в реальном времени. Данные можно даже читать и записывать из Hive в HBase и обратно.

3 голосов
/ 05 февраля 2013

Что касается самых последних выпусков Hive, многое изменилось, что требует небольшого обновления, поскольку Hive и HBase теперь интегрированы . Это означает, что Hive можно использовать как слой запросов к хранилищу данных HBase. Теперь, если люди ищут альтернативные интерфейсы HBase, Pig также предлагает действительно хороший способ загрузки и хранения данных HBase . Кроме того, похоже, что Cloudera Impala может предложить существенную производительность запросов на основе Hive поверх HBase. Они требуют в 45 раз более быстрых запросов по сравнению с традиционными настройками Hive.

0 голосов
/ 11 мая 2015

Чтобы сравнить Hive с Hbase, я хотел бы напомнить определение ниже:

База данных, предназначенная для обработки транзакций, не предназначена для обработки аналитика. Он не структурирован, чтобы хорошо выполнять аналитику. Хранилище данных, с другой стороны, он структурирован для быстрой и простой аналитики.

Hive - это инфраструктура хранилища данных, построенная на основе Hadoop, которая подходит для длительных заданий ETL. Hbase - это база данных, предназначенная для обработки транзакций в реальном времени

...