Хранилище данных на базе Hadoop, подходящее для некоторых приложений с высокой задержкой (автономная разработка), может отображать структурированные и полуструктурированные файлы данных, хранящиеся в файлах Hadoop, в таблицу базы данных и предоставлять данные, подобные SQL, на основе таблицы. модель, называемая Hive Query Language (HQL), для доступа и анализа больших наборов данных, хранящихся в файлах Hadoop;
Суть Hive — преобразовать HQL в программу MapReduce, а затем отправить программу в кластер Hadoop для выполнения;
Сам Hive не хранит и не рассчитывает данные. Он полностью полагается на HDFS и MapReduce. Таблицы в Hive являются чисто логическими таблицами.
Что такое хранилище данных?
Само хранилище данных не «производит» никаких данных, а его данные поступают из разных внешних систем;
При этом самому хранилищу данных не нужно «потреблять» какие-либо данные, а результаты открыты для различных внешних приложений;
Вот почему его называют «складом», а не «фабрикой»;
Архитектура и компоненты улья
Мета-магазин: обычно хранящиеся в реляционных базах данных, таких как Mysql/derby, метаданные в Hive включают имя таблицы, столбцы и разделы таблицы и их атрибуты, атрибуты таблицы (независимо от того, является ли это внешней таблицей и т. д.), каталог, в котором расположены данные таблицы и т. д.;
Водитель : Драйвер, включая анализатор синтаксиса, компилятор планов, оптимизатор и исполнитель. Полные операторы запросов HQL, основанные на лексическом анализе, синтаксическом анализе, компиляции, оптимизации и создании плана запроса. Сгенерированный план запроса сохраняется в HDFS и впоследствии выполняется вызовом механизма выполнения;
Парсер (парсер SQL): Преобразовать строки SQL в абстрактное синтаксическое дерево AST и выполнять синтаксический анализ AST, например, правильность семантики SQL, существует ли таблица и существуют ли поля;
Составитель (Физический план): компилировать AST для создания логического плана выполнения (DAG);
Оптимизатор (Оптимизатор запросов): Оптимизировать логический план выполнения;
Исполнение: Преобразовать логический план выполнения в исполняемый физический план, который представляет собой программу MapReduce/Spark;
Процесс выполнения HQL
Обратиться с просьбой: Инициировать запрос выполнения от пользовательского интерфейса к драйверу;
Получить план выполнения: Драйвер отправляет пользовательский запрос компилятору для получения плана выполнения;
Получить метаданные: Компилятор получает соответствующие метаданные из хранилища метаданных на основе соответствующей информации о таблицах и разделах в операторе SQL;
Вернуть метаданные: Хранилище метаданных возвращает компилятору соответствующие метаданные;
План выполнения возврата: Анализируйте и оптимизируйте SQL на основе метаданных таблиц и разделов для создания логических планов выполнения. План представляет собой граф DAG, и каждый этап соответствует карте MapReduce или операции сокращения;
Запустите план выполнения: Отправьте план выполнения в механизм выполнения, который передаст логический план выполнения в Hadoop для выполнения в форме MapReduce;
Результаты бега получены: Драйвер собирает результаты работы и отправляет их в пользовательский интерфейс;