Apache Hive (Полное путешествие), серия 1 из 3


Апачский улей

Апачский улей

Программное обеспечение хранилища данных Apache Hive™ облегчает чтение, запись и управление большими наборами данных, находящимися в распределенном хранилище, с помощью SQL (стандартный язык запросов).

Где Hive падает в стеке?

На рисунке ниже видно, что Hive — это скорее уровень абстракции, лежащий поверх YARN Map-Reduce 2. Кроме того, обратите внимание, что Hive и Pig лежат в одном горизонтальном стеке.

Архитектура

Как мы видим, Hive — это абстракция поверх заданий Hadoop Map-Reduce. Таким образом, базовая структура такая же, т.е. Hive работает поверх Hadoop.
Итак, Hive в основном состоит из двух компонентов, т.е. Улей а также Хадуп.

Компоненты Hadoop

Ключевые компоненты Hadoop: Пряжа а также HDFS. Yarn — это менеджер ресурсов, а HDFS — это распределенная файловая система Hadoop.

На картинке показано, как данные распределяются по разным узлам.

Компоненты улья

  • Внешние интерфейсы — интерфейсы программирования CLI, WebUI, JDBC, ODBC.
  • Thrift Server — межъязыковая сервисная платформа.
  • Metastore — метаданные о таблицах и разделах Hive.
  • Водитель — Мозг Улья! Компилятор, оптимизатор и механизм выполнения

Важность улья

Аналитики данных с Hadoop (неудобно)

В основном аналитики данных чувствуют себя некомфортно при работе с Hadoop из-за характера кода Hadoop (поскольку для каждого анализа вы должны писать индивидуальные задания по уменьшению карты).

Ограничения Hadoop

Самое большое ограничение Hadoop заключается в том, что нужно использовать модель M/R (модель Map-Reduce). Другие ограничения указаны ниже:
* Не многоразовый
* Склонен к ошибкам
* Несколько этапов функций Map/Reduce для сложных заданий.
* Это все равно, что попросить разработчика написать план физического выполнения в БД.


Модель данных улья

  • Столы
  • Перегородки
  • Ведра

Столы

Аналогично реляционным таблицам. Каждая таблица имеет соответствующий каталог в HDFS. Данные сериализуются и хранятся в виде файлов в этом каталоге.

Перегородки

Каждая таблица может быть разбита на разделы. Разделы определяют распределение данных внутри подкаталогов.
Пример

CREATE_TABLE Sales (sale_id INT, amount FLOAT)PARTITIONED BY (country STRING, year INT, month INT)

Таким образом, каждый раздел будет разделен на разные папки, например:

Sales/country=US/year=2012/month=12

Ведра

Данные в каждом разделе разделены на сегменты на основе хеш-функции столбца. Каждое ведро хранится в виде файла в каталоге раздела.
Пример:
H(столбец) mod NumBuckets = номер корзины

H(столбец) mod NumBuckets = номер корзины


Сравнение между Hive и Pig, поскольку они оба попадают в один и тот же горизонтальный блок стека.

Сходства

Оба языка высокого уровня, которые работают поверх структуры map-reduce. Поскольку оба используют базовую HDFS и map-reduce, они оба могут сосуществовать.

Отличия

  1. Язык
    Свинья — процедурная; (A = загрузить «mydata»; дамп A)
    Hive — декларативный (выберите * из A)
  2. Тип работы
    Свинья — больше подходит для специального анализа (анализ журналов поиска потока кликов по запросу).
    Hive — инструмент отчетности (например, еженедельная отчетность BI)
  3. Пользователи
    Свиньи — исследователи, программисты (создание сложных конвейеров данных, машинное обучение)
    Улей — Бизнес-аналитики
  4. Интеграция
    Pig — не имеет комиссионного сервера (т.е. нет/ограниченная межъязыковая поддержка)
    Улей — Комиссионный сервер
  5. Потребность пользователя
    Pig — улучшенная среда разработки, ожидаемые отладчики
    Hive — ожидается лучшая интеграция с технологиями (например, JDBC, ODBC).

Плюсы, минусы и улучшения улья

  • Благо для аналитиков данных
  • Легкая кривая обучения
  • Полностью прозрачен для лежащего в основе Map-Reduce
  • Разделы (скорость!)
  • Гибкость загрузки данных из localFS/HDFS в таблицы Hive.
  • Расширение поддержки запросов SQL (обновления, удаления)
  • Улучшенная поддержка отладки в оболочке

Где Hive полезен?
Везде, где задействована пакетная обработка например: обработка журналов, интеллектуальный анализ текста, индексация документов, бизнес-аналитика для клиентов и прогнозное моделирование.

Где не полезно?
Везде, где требуется онлайн-обработка, например: OLTP и запросы в реальном времени.


Благодарим вас за чтение вводного блога об Apache Hive. Теперь, если вы хотите попробовать это. Начнем с настройки Hadoop.
Продолжать Серия Часть 2 из 3 .


Настройка конфигурации


использованная литература

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *