Обмен технологиями

Введение в Hive и его архитектуру

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Что такое Улей?

  • Хранилище данных на базе 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

Вставьте сюда описание изображения

  1. Обратиться с просьбой: Инициировать запрос выполнения от пользовательского интерфейса к драйверу;
  2. Получить план выполнения: Драйвер отправляет пользовательский запрос компилятору для получения плана выполнения;
  3. Получить метаданные: Компилятор получает соответствующие метаданные из хранилища метаданных на основе соответствующей информации о таблицах и разделах в операторе SQL;
  4. Вернуть метаданные: Хранилище метаданных возвращает компилятору соответствующие метаданные;
  5. План выполнения возврата: Анализируйте и оптимизируйте SQL на основе метаданных таблиц и разделов для создания логических планов выполнения. План представляет собой граф DAG, и каждый этап соответствует карте MapReduce или операции сокращения;
  6. Запустите план выполнения: Отправьте план выполнения в механизм выполнения, который передаст логический план выполнения в Hadoop для выполнения в форме MapReduce;
  7. Результаты бега получены: Драйвер собирает результаты работы и отправляет их в пользовательский интерфейс;