Hive

Apache Hive — это SQL интерфейс доступа к данным для платформы Apache Hadoop. Hive позволяет выполнять запросы, агрегировать и анализировать данные используя SQL синтаксис. Для данных хранящихся на файловой системе HDFS используется схема доступа на чтение позволяющая обращаться с данными как с обыкновенной таблицей или базой данных. Запросы HiveQL при этом в Java код команды  исполняемые MapReduce.  

Запросы Hive создаются на языке запросов HiveQL, который основан на языке SQL, но не имеет полной поддержки стандарта SQL-92. В то же время этот язык позволяет программистам использовать их собственные запросы, когда неудобно или неэффективно использовать логику в HiveQL. HiveQL может быть расширен с помощью пользовательских скалярных функций (UDF), агрегаций (UDAF кодов), и табличных функций (UDTF).

Архитектура HIVE:

Architecture Apache Hive

Название компонента Описание

UI Пользовательский интерфейс

Позволяет выполнять запросы и команды в Hive:

  • Hive Web UI
  • командная строка Hive CLI или Beeline
  • Hive HD Insight (на сервере Windows)
  • Apache Zeppelin или HUE server

Meta Store (Хранилище мета-данных)

Хранит метаданные для таблиц Hive — схему на чтение (schema-on-read) , расположение, информацию о столбцах в таблице, типы данных, ACL и тд.

Hive QL Process Engine (процессор HiveQL)

Вместо написания программ MapReduce на Java мы можем написать запрос на HiveQL для дальнейшей компиляции и исполнения задания MapReduce
Execution Engine (Механизм выполнения) Составной часть процесса HiveQL Engine и MapReduce является механизм выполнения Hive. Механизм выполнения обрабатывает запрос и генерирует план задач MapReduce
HDFS или HBASE Распределенная файловая система Hadoop или HBASE — это методы хранения данных в файловой системе