В этом руководстве вы узнаете:
- Что такое улей?
- Улей Архитектура
- Различные режимы улья
- Что такое Hive Server2 (HS2)?
Что такое улей?
Hive - это инструмент ETL и хранилища данных, разработанный на основе распределенной файловой системы Hadoop (HDFS). Hive упрощает выполнение таких операций, как
- Инкапсуляция данных
- Специальные запросы
- Анализ огромных наборов данных
Важные характеристики Hive
- В Hive сначала создаются таблицы и базы данных, а затем данные загружаются в эти таблицы.
- Hive как хранилище данных, предназначенное для управления и запросов только к структурированным данным, хранящимся в таблицах.
- При работе со структурированными данными Map Reduce не имеет функций оптимизации и удобства использования, таких как UDF, но у инфраструктуры Hive есть. Оптимизация запросов относится к эффективному способу выполнения запросов с точки зрения производительности.
- Язык Hive, вдохновленный SQL, отделяет пользователя от сложности программирования Map Reduce. Он повторно использует знакомые концепции из мира реляционных баз данных, такие как таблицы, строки, столбцы, схемы и т. Д. Для простоты обучения.
- Программирование Hadoop работает с плоскими файлами. Таким образом, Hive может использовать структуры каталогов для «разделения» данных с целью повышения производительности при выполнении определенных запросов.
- Новый и важный компонент Hive, то есть Metastore, используемый для хранения информации схемы. Это хранилище метастазов обычно находится в реляционной базе данных. Мы можем взаимодействовать с Hive, используя такие методы, как
- Веб-интерфейс
- Интерфейс подключения к базе данных Java (JDBC)
- Большинство взаимодействий происходит через интерфейс командной строки (CLI). Hive предоставляет интерфейс командной строки для написания запросов Hive с использованием языка запросов Hive (HQL).
- Как правило, синтаксис HQL аналогичен синтаксису SQL, с которым знакомо большинство аналитиков данных. В приведенном ниже примере запроса отображаются все записи, представленные в указанном имени таблицы.
- Пример запроса : выберите * из
- Пример запроса : выберите * из
- Hive поддерживает четыре формата файлов: TEXTFILE, SEQUENCEFILE, ORC и RCFILE (файл столбца записи).
- Для однопользовательского хранилища метаданных Hive использует базу данных derby, а для многопользовательских метаданных или общих метаданных Hive использует MYSQL.
Чтобы настроить MySQL в качестве базы данных и сохранить информацию о метаданных, ознакомьтесь с Руководством «Установка и настройка HIVE и MYSQL».
Некоторые из ключевых моментов об Hive:
- Основное различие между HQL и SQL заключается в том, что запрос Hive выполняется в инфраструктуре Hadoop, а не в традиционной базе данных.
- Выполнение запроса Hive будет похоже на серию автоматически сгенерированных заданий сокращения карты.
- Hive поддерживает концепции секций и корзин для легкого извлечения данных, когда клиент выполняет запрос.
- Hive поддерживает специальные пользовательские функции UDF (определяемые пользователем функции) для очистки, фильтрации данных и т. Д. В соответствии с требованиями программистов можно определить пользовательские функции Hive.
Улей против реляционных баз данных: -
Используя Hive, мы можем выполнять некоторые специфические функции, которые не достигаются в реляционных базах данных. Для огромного количества данных в пета-байтах важно запрашивать их и получать результаты за секунды. И Hive делает это довольно эффективно, быстро обрабатывает запросы и дает результаты за секунды.
Теперь посмотрим, что делает Hive таким быстрым.
Некоторые ключевые различия между Hive и реляционными базами данных заключаются в следующем;
Реляционные базы данных имеют « Схема при чтении и схема при записи ». Сначала создайте таблицу, а затем вставьте данные в конкретную таблицу. В таблицах реляционной базы данных могут выполняться такие функции, как вставки, обновления и модификации.
Hive - это « Схема только для чтения ». Итак, такие функции, как обновление, модификации и т. Д., С этим не работают. Поскольку запрос Hive в типичном кластере выполняется на нескольких узлах данных. Таким образом, невозможно обновлять и изменять данные на нескольких узлах (версии Hive ниже 0,13).
Кроме того, Hive поддерживает шаблон « ЧИТАТЬ много, ЗАПИСАТЬ один раз ». Это означает, что после вставки таблицы мы можем обновить таблицу в последних версиях Hive.
ПРИМЕЧАНИЕ . Однако новая версия Hive поставляется с обновленными функциями. В версиях Hive (Hive 0.14) в качестве новых функций доступны параметры обновления и удаления.
Улей Архитектура
На приведенном выше снимке экрана подробно объясняется архитектура Apache Hive.
Улей состоит в основном из 3 основных частей
- Клиенты Hive
- Сервисы Hive
- Hive Storage и вычисления
Клиенты Hive:
Hive предоставляет разные драйверы для связи с разными типами приложений. Для приложений, основанных на сбережении, он будет предоставлять клиент сбережений для связи.
Для приложений, связанных с Java, он предоставляет драйверы JDBC. Помимо любых типов приложений предусмотрены драйверы ODBC. Эти клиенты и драйверы, в свою очередь, снова обмениваются данными с сервером Hive в службах Hive.
Сервисы Hive:
Взаимодействие клиентов с Hive может осуществляться через Hive Services. Если клиент хочет выполнить какие-либо операции, связанные с запросами, в Hive, он должен взаимодействовать через Hive Services.
CLI - это интерфейс командной строки, который действует как служба Hive для операций DDL (язык определения данных). Все драйверы взаимодействуют с сервером Hive и с основным драйвером в службах Hive, как показано на схеме архитектуры выше.
Драйвер, присутствующий в службах Hive, представляет собой основной драйвер, и он взаимодействует со всеми типами JDBC, ODBC и другими клиентскими приложениями. Драйвер будет обрабатывать эти запросы от различных приложений к метамагазинам и полевым системам для дальнейшей обработки.
Улей для хранения и вычислений:
Сервисы Hive, такие как Meta store, File system и Job Client, в свою очередь, взаимодействуют с хранилищем Hive и выполняют следующие действия.
- Информация о метаданных таблиц, созданных в Hive, хранится в Hive «База данных метаданных».
- Результаты запроса и данные, загруженные в таблицы, будут храниться в кластере Hadoop на HDFS.
Порядок выполнения заданий:
Из приведенного выше снимка экрана мы можем понять поток выполнения задания в Hive с Hadoop.
Поток данных в Hive ведет себя следующим образом;
- Выполнение запроса из пользовательского интерфейса (пользовательский интерфейс)
- Драйвер взаимодействует с компилятором для получения плана. (Здесь план относится к выполнению запроса) процесс и связанный с ним сбор информации метаданных
- Компилятор создает план выполнения задания. Компилятор обменивается данными с хранилищем метаданных для получения запроса метаданных
- Мета-хранилище отправляет информацию метаданных обратно компилятору
- Компилятор связывается с драйвером с предложенным планом выполнения запроса
- Драйвер отправляет планы выполнения механизму выполнения
- Execution Engine (EE) действует как мост между Hive и Hadoop для обработки запроса. Для операций DFS.
- EE должен сначала связаться с узлом имени, а затем с узлами данных, чтобы получить значения, хранящиеся в таблицах.
- EE будет извлекать нужные записи из узлов данных. Фактические данные таблиц находятся только в узле данных. В то время как из Name Node он только извлекает информацию метаданных для запроса.
- Он собирает фактические данные из узлов данных, связанных с упомянутым запросом.
- Execution Engine (EE) двунаправленно взаимодействует с Meta store, присутствующим в Hive, для выполнения операций DDL (Data Definition Language). Здесь выполняются операции DDL, такие как CREATE, DROP и ALTERING для таблиц и баз данных. Мета-хранилище будет хранить информацию только об имени базы данных, именах таблиц и именах столбцов. Он получит данные, относящиеся к упомянутому запросу.
- Execution Engine (EE), в свою очередь, взаимодействует с демонами Hadoop, такими как узел имени, узлы данных и средство отслеживания заданий, для выполнения запроса поверх файловой системы Hadoop.
- Получение результатов от драйвера
- Отправка результатов в Execution Engine. Как только результаты получены от узлов данных в EE, он отправит результаты обратно в драйвер и в пользовательский интерфейс (интерфейс).
Hive Постоянно контактирует с файловой системой Hadoop и ее демонами через механизм выполнения. Пунктирная стрелка на диаграмме потока заданий показывает взаимодействие механизма выполнения с демонами Hadoop.
Различные режимы улья
Hive может работать в двух режимах в зависимости от размера узлов данных в Hadoop.
Эти режимы:
- Локальный режим
- Режим уменьшения карты
Когда использовать локальный режим:
- Если Hadoop установлен в псевдорежиме с одним узлом данных, мы используем Hive в этом режиме.
- Если размер данных меньше с точки зрения ограничения на одну локальную машину, мы можем использовать этот режим.
- Обработка будет очень быстрой для небольших наборов данных, имеющихся на локальном компьютере.
Когда использовать режим уменьшения карты:
- Если Hadoop имеет несколько узлов данных и данные распределяются по разным узлам, мы используем Hive в этом режиме.
- Он будет работать с большим количеством наборов данных, и запрос будет выполняться параллельно.
- В этом режиме можно добиться обработки больших наборов данных с более высокой производительностью.
В Hive мы можем установить это свойство, чтобы указать, какой режим Hive может работать? По умолчанию он работает в режиме уменьшения карты, а для локального режима у вас могут быть следующие настройки.
Улей для работы в локальном режиме установлен
УСТАНОВИТЬ mapred.job.tracker = local;
Начиная с версии Hive 0.7, он поддерживает режим автоматического запуска заданий сокращения карты в локальном режиме.
Что такое Hive Server2 (HS2)?
HiveServer2 (HS2) - это серверный интерфейс, который выполняет следующие функции:
- Позволяет удаленным клиентам выполнять запросы к Hive
- Получить результаты упомянутых запросов
Начиная с последней версии, он имеет некоторые расширенные функции на основе Thrift RPC, например:
- Мультиклиентный параллелизм
- Аутентификация
Резюме:
Hive - это инструмент ETL и хранилища данных поверх экосистемы Hadoop, используемый для обработки структурированных и полуструктурированных данных.
- Hive - это база данных, присутствующая в экосистеме Hadoop, выполняющая операции DDL и DML, и она предоставляет гибкий язык запросов, такой как HQL, для лучшего запроса и обработки данных.
- Он предоставляет так много функций по сравнению с RDMS, у которой есть определенные ограничения.
Для пользовательской логики в соответствии с требованиями клиента.
- Он предоставляет возможность написания и развертывания пользовательских сценариев и пользовательских функций.
- Кроме того, он предоставляет разделы и корзины для логики хранилища.