Hive – это система управления базами данных (СУБД) в рамках платформы Hadoop для хранения и обработки больших данных в распределенной среде. Хайв позволяет проектировать структуры Big Data (таблицы, партиции, бакеты) с помощью SQL-подобного языка, называемого HiveQL.
Что такое Apache Hive: архитектура и принципы работы
Apache Hive – это СУБД для хранения и обработки больших данных в распределенном кластере экосистемы Hadoop.
СУБД Apache Hive включает в себя следующие элементы:
- HCatalog — это компонент Хайв, который отвечает за управление таблицами и хранилищами. Этот компонент также снабжает пользователей различными инструментами обработки Big Data (включая MapReduce и Pig) для более простого чтения и записи данных.
- WebHCat — это компонент, позволяющий выполнять базовые операции (чтение, запись и удаление) с метаданными в сети Хайв посредством использования интерфейса HTTP (Hyper Text Transfer Protocol). WebHCat также используется как сервер для развертывания среды Хайв.
6 основных преимуществ Apache Hive для Big Data
Хайв имеет следующие преимущества при работе с большими данными:
- индексация данных — Хайв использует индексы для более быстрой работы с данными;
- хранение метаданных в СУБД значительно снижает время семантических проверок на соответствие запроса конструкциям языка во время его выполнения;
- хранение данных на всех узлах кластера снижает риск потери информации;
- поддержка операций со сжатыми данными, хранящимися в экосистеме Hadoop;
- поддержка клиента, установленного на стороне пользователя. Этот клиент взаимодействует с сервисами Хайв, запущенными на сервере. Такой подход хорошо применим для приложений, написанных на разных языках программирования, в т.ч. JAVA, C++, Python, R. Используя эти языки, пользователь имеет возможность подключения к интерфейсу Хайв для использования различных SQL-команд и доступа к базам данных;
- SQL-подобный синтаксис на диалекте HQL снижает порог входа в технологию. Такие SQL-подобные запросы могут свободно преобразовываться в задания MapReduce или Spark, что избавляет пользователя от лишних действий по преобразованию данных Хайв [1].
Как появился Apache Hive: краткая история
Разработка Хайв началась в 2008 году разработчиками Джойдипом Сеном Сармой и Ашишем Тусу во время их работы в Facebook. Первая версия Hive вышла в свет 9 ноября 2011 года. Хайв создавался для реализации технологии Hadoop MapReduce, позволяющей вести распределенную обработку данных. Однако стояла еще одна острая проблема: невозможность быстрого обучения специалистов и аналитиков навыкам использования Hadoop. Чтобы этого избежать, было решено в качестве интерфейса использовать SQL-подобный интерфейс, так как он широко используется специалистами в области работы с данными. Хотя SQL мог удовлетворить большинство требований аналитики, создатели также решили реализовать возможности программирования Hadoop для проектирования распределенных приложений обработки больших данных. Таким образом, Хайв появился из двух идей:
- декларативный язык на основе SQL, чтобы аналитики и дата-инженеры могли создавать собственные сценарии работы с большими данными;
- возможности подключения различных языков программирования (Python, JAVA, Scala, C++), использующих интерфейс SQL для разработки специализированных приложений.
Последняя версия Хайв (3.1.2) вышла 26 августа 2019 года [2].
Таким образом, благодаря распределенной работе с данными и SQL-интерфейсу, Apache Hive является весьма удобным и надежным средством для работы с большими данными. Именно поэтому Hive является неотъемлемой частью экосистемы Hadoop, являющейся универсальным решением для организации обработки Big Data.
Больше подробностей про применение Apache Hive в проектах анализа больших данных вы узнаете на практических курсах по Hive в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:
IMPA: CLOUDERA IMPALA DATA ANALYTICS
ADQM: ЭКСПЛУАТАЦИЯ ARENADATA QUICKMARTS
ADBR: Arenadata DB для разработчиков
ADB: Эксплуатация Arenadata DB
HBASE: Администрирование кластера HBase
HIVE: Hadoop SQL администратор Hive
NoSQL: Интеграция Hadoop и NoSQL
Источники