Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

HBase - это хранилище ключевых значений на основе столбцов, основанное на BigTable.Вы не можете выполнять запросы как таковые, хотя вы можете запускать задания map reduce через HBase.Его основным вариантом использования является выборка строк по ключу или сканирование диапазонов строк.Важной особенностью является возможность обеспечения локальности данных при сканировании по диапазонам ключей строк для "семейства" столбцов.

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

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

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

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

Улей:

Плюсы:

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

Минусы:

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

HBase - база данных:

Плюсы:

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

Минусы:

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

Краткие сведения:

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top