Статья для понимания системной архитектуры Hive

Apache Hive

Это 8-й день моего участия в августовском испытании обновлений.Подробности о событии:Испытание августовского обновления

текст

Hive — это инструмент обработки хранилища данных, который инкапсулирует Hadoop в нижней части.Он работает на основе Hadoop.Его системная архитектура в основном включает четыре части, а именно пользовательский интерфейс, многоязычный сервис, базовый драйвер и систему хранения метаданных.

Далее объясняются компоненты системной архитектуры Hive.

在这里插入图片描述

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

В основном делится на 3, а именно CLI, JDBC/ODBC и WebUI.

Среди них CLI — это командная строка терминала оболочки, которая является наиболее часто используемым способом.

JDBC/ODBC — это Java-реализация Hive, аналогичная тому, как вы используете традиционную базу данных JDBC, WebUI относится к доступу к Hive через браузер.

2. Многоязычный сервис (Thrift Server)

Thrift — это программная среда, разработанная Facebook для расширяемых и многоязычных сервисов.

Hive интегрирует этот сервис, позволяя различным языкам программирования вызывать интерфейс Hive.

3. Основной движок драйвера (Driver)

В основном включает парсер (SQL Parser), компилятор (Compiler), оптимизатор (Optimizer) и исполнитель (Executor).

Они используются для завершения лексического анализа, синтаксического анализа, компиляции, оптимизации и создания планов запросов для операторов запросов HQL, которые хранятся в HDFS и позже выполняются вызовами MapReduce.

Базовый вычислительный движок Hive может быть выбран как: MapReduce, Spark, Tez.

4. Система Metastore (Метастор)

Метаданные в Hive обычно включают имена таблиц, столбцов, разделов и связанные с ними атрибуты, информацию о расположении каталога, в котором находятся данные таблицы, а хранилище метаданных по умолчанию существует во встроенной базе данных Derby.

Поскольку база данных Derby не подходит для многопользовательской работы, а каталог хранения данных не фиксирован и неудобен в управлении, метаданные обычно хранятся в базе данных MySQL.