Архитектура и команды Apache Hive: режимы, характеристики и приложения

Опубликовано: 2021-06-30

Оглавление

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

Улей Apache — это инструмент хранения данных с открытым исходным кодом, разработанный Facebook для распределенной обработки и анализа данных. Он разработан на основе распределенной файловой системы Hadoop (HDFS). Механизм проецирования структуры на данные в Hadoop предоставляется Hive. Для запроса этих данных используется SQL-подобный язык под названием HiveQL (HQL). Существует сходство между таблицами в Hive и таблицами в реляционной базе данных. Запросы Hive может легко написать любой, кто знаком с SQL.

Вот несколько особенностей Hive:

  • Хранение информации о схеме в базе данных и обработанных данных в HDFS.
  • Предназначен для OLAP.
  • Язык запросов — HiveQL или HQL, похожий на SQL.
  • Это быстро, знакомо, масштабируемо и расширяемо.

Использование улья

  • Это распределенное хранилище Apache Hive.
  • Предоставляются инструменты, которые позволяют пользователям легко извлекать, преобразовывать и загружать данные.
  • Для предоставления структуры предлагаются различные форматы данных.
  • Hive может получить доступ к файлам, хранящимся в распределенной файловой системе Hadoop (HDFS).

Команды Улья

Команды улья :

  1. Язык определения данных (DDL): таблицы и другие объекты в базе данных создаются и изменяются с помощью этих команд.
  • CREATE: используется для создания таблицы или базы данных.
  • SHOW: используется для отображения базы данных, таблицы, свойств и т. д.
  • ALTER: используется для внесения изменений в существующую таблицу.
  • DESCRIBE: описывает столбцы таблицы.
  • TRUNCATE: Используется для окончательного усечения и удаления строк таблиц.
  • DELETE: удаляет данные таблицы, но их можно восстановить.
  1. Язык манипулирования данными (DML): используется для извлечения, хранения, изменения, удаления, вставки и обновления данных в базе данных.
  • Синтаксис операторов LOAD, INSERT

ЗАГРУЗИТЬ данные <LOCAL> inpath <путь к файлу> в таблицу [tablename]

  • После загрузки данных команды обработки данных используются для извлечения данных.
  • Агрегатная функция Count используется для подсчета общего количества записей в таблице.
  • Ключевое слово «создать внешний» используется для создания таблицы и указывает место, где будет создана таблица. ВНЕШНЯЯ таблица указывает на любое расположение HDFS для своего хранилища.
  • Команды вставки используются для загрузки таблицы данных Hive. «Вставить перезапись» используется для перезаписи существующих данных, а «вставка в» используется для добавления данных к существующим данным.
  • Таблица делится на разделы командой «partitioned by» и делится на сегменты командой «clustered by».
  • Вставка данных вызывает ошибки, поскольку динамический раздел не включен. Поэтому в оболочке Hive должны быть установлены следующие параметры.

установить hive.exec.dynamic.partition = true;

Чтобы включить динамические разделы, по умолчанию установлено значение false.

установить hive.exec.dynamic.partition.mode = нестрогий;

  • Команда «Удалить таблицу» удаляет данные и метаданные для таблицы.
  • Агрегация: Синтаксис:

Выберите количество (категория DISTINCT) из имени таблицы;

Команда подсчитает различные категории таблиц 'cate'.

  • Группировка: Синтаксис:

Выберите категорию, сумму (сумму) из группы записей txt по категориям

Набор результатов будет сгруппирован в один или несколько столбцов.

  • Операция объединения: выполните, чтобы объединить поля из двух таблиц, используя значения, общие для каждого столбца.
  • Левое внешнее соединение: для таблиц A и B левое внешнее соединение должно содержать все записи «левой» таблицы (A), даже если условие соединения не находит совпадающих записей в «правой» таблице (B).
  • Правое внешнее соединение: каждая строка из «правильной» таблицы (B) появится в объединенной таблице хотя бы один раз.
  • Полное соединение: объединенная таблица будет содержать все записи из обеих таблиц. Объединенная таблица будет содержать все записи из обеих таблиц.

Архитектура улья

Архитектура Apache Hive показана на рис. 1 .

Список основных компонентов

Основными компонентами архитектуры улья являются:

1. Клиент улья

Различные приложения, написанные на таких языках, как Java, Python, C++ и т. д., взаимодействуют с помощью различных драйверов, предоставляемых Hive. Он может быть написан на любом языке по выбору. Клиенты и серверы, в свою очередь, взаимодействуют с сервером Hive в службах Hive.

Чаще всего их делят на три типа:

  • Клиент Thrift: он основан на Apache Thrift для обслуживания запроса от клиента Thrift. Клиент Thrift будет использоваться для связи с приложениями на основе Thrift.
  • Клиент JDBC: JDBC предоставляется для приложений, связанных с Java. Приложения Java подключаются к Hive с помощью драйвера JDBC. Кроме того, он использует Thrift для связи с сервером Hive.
  • Клиент ODBC: приложениям, основанным на протоколе ODBC, разрешено подключаться к Hive через драйверы ODBC. Подобно JDBC, он использует Thrift для связи с сервером Hive.

2. Услуги улья

Службы Hive предоставляют средства для взаимодействия Hive с Клиентами. Любые операции, связанные с запросом, которые должны быть выполнены Клиентом, должны быть сообщены через службы Hire. Для операций языка определения данных (DDL) интерфейс командной строки действует как служба Hive.

Все драйверы должны связываться с сервером Hive, а затем с основным драйвером в службах Hive. Драйверы в службах Hive представляют собой основной драйвер, который взаимодействует с конкретными приложениями клиента и всеми типами JDBC, ODBC и т. д. Запросы от различных приложений обрабатываются драйвером в хранилище метаданных и полевых системах, которые будут обрабатываться в дальнейшем.

Услуги, предлагаемые Hive:

  • Билайн: Билайн — это командная оболочка, в которой пользователь может отправлять свои запросы в систему. Он поддерживается HiveServer2. Это клиент JDBC, основанный на SQLLINE CLI.
  • Hive Server 2: клиентам разрешено выполнять запросы к улью. Преемник HiveServer1, он позволяет выполнять несколько запросов от нескольких клиентов. Он обеспечивает наилучшую поддержку для клиентов с открытым API, таких как JDBC и ODBC.
  • Драйвер Hive: пользователь отправляет инструкции HiveQL драйверу Hive через командную оболочку. Он отправляет запрос компилятору и создает дескрипторы сеанса для запроса.
  • Компилятор Hive: компилятор Hive используется для передачи запроса. Используя метаданные, хранящиеся в хранилище метаданных, компилятор Hive выполняет семантический анализ и проверку типов для различных блоков запросов и выражений. Затем план выполнения генерируется компилятором, который является DAG (направленный ациклический граф). Каждый этап DAG — это операция с метаданными, операция с HDFS или задание сопоставления/уменьшения.
  • Оптимизатор: основная роль оптимизатора заключается в выполнении операций преобразования плана выполнения. Это повышает эффективность и масштабируемость за счет разделения задач.
  • Механизм выполнения : после завершения этапов компиляции и оптимизации роль механизма выполнения выполняет план выполнения, созданный компилятором. План выполняется с использованием Hadoop в порядке их зависимостей.
  • Хранилище метаданных : Хранилище метаданных, как правило, представляет собой реляционную базу данных, в которой хранится информация метаданных, связанная со структурой таблиц и разделов. Это центральный репозиторий, в котором также хранится информация о столбцах и типах столбцов. Информация, относящаяся к сериализатору и десериализатору, также хранится в Metastore, которая требуется для операций чтения/записи вместе с файлами HDFS, в которых хранятся данные. Интерфейс Thrift предоставляется Metastore для запросов и управления метаданными Hive.

Metastore можно настроить в двух режимах:

  • Удаленный: этот режим полезен для приложений, отличных от Java, и в удаленном режиме хранилище метаданных является службой Thrift.
  • Встроенный: в этом режиме клиент может напрямую взаимодействовать с хранилищем метаданных через JDBC.
  • HCatalog: уровень управления таблицами и хранилищем для Hadoop — это HCatalog. Доступны различные инструменты обработки данных для чтения и записи данных в сетке, такие как Pig, MapReduce и т. д. Построенные на основе хранилища метаданных Hive, табличные данные хранилища метаданных Hive доступны для других инструментов обработки данных.
  • WebHCat: WebHCat — это HTTP-интерфейс и REST API для HCatalog. Он выполняет операции с метаданными Hive и предлагает службу запуска заданий Hadoop MapReduce (или YARN), Pig, Hive.

3. Обработка и управление ресурсами

Выполнение запросов осуществляется внутренней структурой MapReduce.

Платформа MapReduce — это программная среда для обработки больших объемов данных на больших кластерах общедоступного оборудования. Данные разбиваются на куски, а затем обрабатываются задачами уменьшения карты.

4. Распределенное хранилище

Службы Hive взаимодействуют с хранилищем Hive для выполнения следующих действий:

  • База данных хранилища метаданных Hive содержит метаданные таблиц, созданных в Hive.
  • Кластер Hadoop на HDFS будет хранить результаты запросов и данные, загруженные в таблицы.

Различные режимы улья

В зависимости от размера данных Hive может работать в двух режимах.

  1. Локальный режим

Локальный режим Hive используется, когда

  • Установленный Hadoop имеет один узел данных и установлен в псевдорежиме.
  • Размер данных одной локальной машины меньше.
  • Быстрая обработка на локальных компьютерах из-за наличия небольших наборов данных.
  1. Режим уменьшения карты

Режим уменьшения карты Hive используется, когда

  • Hadoop имеет несколько узлов данных с распределенными данными по разным узлам.
  • Размер данных больше, и требуется параллельное выполнение запроса.
  • Большие наборы данных могут обрабатываться с большей производительностью.

Характеристики улья

  • Данные загружаются в таблицы после создания таблиц и баз данных.
  • Hive может управлять и запрашивать только структурированные данные, хранящиеся в таблицах.
  • Платформа Hive имеет функции оптимизации и удобства использования при работе со структурированными данными, которых нет в Map Reduce.
  • Для простоты использования язык, вдохновленный Hive SQL, представляет собой более простой подход по сравнению со сложным языком программирования Map Reduce. В Hive используются знакомые концепции таблиц, строк, столбцов и т. д.
  • Для повышения производительности запросов Hive может разбивать данные с помощью структуры каталогов.
  • Hive содержит важный компонент под названием «Metastore», который находится в реляционной базе данных и хранит информацию о схеме. Для взаимодействия с Hive можно использовать два метода: веб-интерфейс и интерфейс Java Database Connectivity (JDBC).
  • Интерфейс командной строки (CLI) используется для большинства взаимодействий. CLI используется для написания запросов Hive с использованием языка запросов Hive (HQL).
  • Синтаксис HQL аналогичен синтаксису SQL.
  • Hive поддерживает четыре формата файлов; TEXTFILE, SEQUENCEFILE, ORC и RCFILE (файл столбца записи).

Заключение

Apache Hive — это инструмент для хранения данных с открытым исходным кодом, состоящий из основных компонентов, таких как клиенты Hive, службы Hive, платформа обработки и управление ресурсами, а также распределенное хранилище.

Он построен на основе экосистемы Hadoop для обработки структур и полуструктурированных данных. Пользовательский интерфейс, предоставляемый Hive, позволяет пользователю отправлять свои запросы на языке запросов Hive (HQL). Это передается компилятору для создания плана выполнения. Наконец, план выполняется механизмом выполнения.

Если вам интересно узнать больше о больших данных, ознакомьтесь с нашей программой PG Diploma в области разработки программного обеспечения со специализацией в области больших данных, которая предназначена для работающих профессионалов и включает более 7 тематических исследований и проектов, охватывает 14 языков и инструментов программирования, практические занятия. семинары, более 400 часов интенсивного обучения и помощи в трудоустройстве в ведущих фирмах.

Ознакомьтесь с другими нашими курсами по программной инженерии на upGrad.

Возглавьте технологическую революцию, основанную на данных

7 ПРИМЕРЫ И ПРОЕКТЫ. ПОМОЩЬ В РАБОТЕ С ТОП ФИРМ. ПРЕДНАЗНАЧЕННЫЙ НАСТАВНИК ДЛЯ СТУДЕНТОВ.
Расширенная программа сертификации в области больших данных от IIIT Bangalore