Учебники

1) Введение в Улей

В этом уроке вы узнаете

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

Hive — это инструмент ETL и хранилище данных, разработанный на основе распределенной файловой системы Hadoop (HDFS). Улей облегчает работу для выполнения таких операций, как

  • Инкапсуляция данных
  • Специальные запросы
  • Анализ огромных наборов данных

Важные характеристики Улья

Для настройки MySQL в качестве базы данных и для хранения метаданных см. Учебное пособие «Установка и настройка HIVE и MYSQL»

Некоторые из ключевых моментов о Hive:

  • Основное различие между HQL и SQL заключается в том, что запрос Hive выполняется в инфраструктуре Hadoop, а не в традиционной базе данных.
  • Выполнение запроса Hive будет похоже на серию автоматически сгенерированных карт, уменьшающих количество заданий.
  • Hive поддерживает концепции разделов и сегментов для легкого извлечения данных, когда клиент выполняет запрос.
  • Hive поддерживает пользовательские UDF (пользовательские функции) для очистки, фильтрации и т. Д. В соответствии с требованиями программистов можно определять UDF Hive.

Hive Vs Реляционные базы данных: —

Используя Hive, мы можем выполнять некоторые специфические функции, которых нет в реляционных базах данных. Для огромного количества данных в петабайтах важно запрашивать его и получать результаты за считанные секунды. И Hive делает это довольно эффективно, он обрабатывает запросы быстро и дает результаты за секунду.

Давайте посмотрим теперь, что делает Улей так быстро.

Некоторые ключевые различия между Hive и реляционными базами данных заключаются в следующем;

Реляционные базы данных представляют собой « Схема на READ и Схема на запись ». Сначала создайте таблицу, а затем вставьте данные в конкретную таблицу. В таблицах реляционной базы данных могут выполняться такие функции, как вставки, обновления и модификации.

Улей » Схема только для чтения «. Таким образом, такие функции, как обновление, модификации и т. Д. Не работают с этим. Потому что запрос Hive в типичном кластере выполняется на нескольких узлах данных. Поэтому невозможно обновлять и изменять данные на нескольких узлах (версии Hive ниже 0,13).

Кроме того, Hive поддерживает шаблон « READ Many WRITE Once ». Это означает, что после вставки таблицы мы можем обновить таблицу в последних версиях Hive.

ПРИМЕЧАНИЕ . Однако новая версия Hive поставляется с обновленными функциями. Версии Hive (Hive 0.14) предлагаются с опциями «Обновить» и «Удалить» в качестве новых функций.

Улей Архитектура

Введение в Улей

На приведенном выше снимке экрана подробно описывается архитектура Apache Hive.

Улей состоит в основном из 3 основных частей

  1. Клиенты улья
  2. Улей Услуги
  3. Хранение улья и вычисления

Клиенты Hive:

Hive предоставляет разные драйверы для связи с различными типами приложений. Для приложений, основанных на Thrift, он предоставит клиенту Thrift для связи.

Для приложений, связанных с Java , он предоставляет драйверы JDBC. Помимо приложений любого типа предоставляются драйверы ODBC. Эти клиенты и драйверы в свою очередь снова связываются с сервером 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 ведет себя следующим образом;

  1. Выполнение запроса из пользовательского интерфейса (пользовательский интерфейс)
  2. Драйвер взаимодействует с компилятором для получения плана. (Здесь план относится к выполнению запроса) процесс и связанный с ним сбор метаданных
  3. Компилятор создает план для задания, которое будет выполнено. Компилятор связывается с Meta store для получения запроса метаданных
  4. Мета-хранилище отправляет метаданные обратно в компилятор
  5. Компилятор связывается с драйвером с предложенным планом выполнения запроса
  6. Драйвер Отправка планов выполнения в Механизм выполнения
  7. Механизм выполнения (EE) действует как мост между Hive и Hadoop для обработки запроса. Для операций DFS.
  • EE должен сначала связаться с узлом имени, а затем с узлами данных, чтобы получить значения, хранящиеся в таблицах.
  • EE собирается получить нужные записи из узлов данных. Фактические данные таблиц находятся только в узле данных. В то время как из узла имени он только извлекает информацию метаданных для запроса.
  • Он собирает фактические данные из узлов данных, связанных с упомянутым запросом
  • Механизм выполнения (EE) связывается в двух направлениях с мета-хранилищем, присутствующим в Hive, для выполнения операций DDL (язык определения данных). Здесь выполняются операции DDL, такие как таблицы и базы данных CREATE, DROP и ALTERING. Мета-магазин будет хранить информацию только об имени базы данных, именах таблиц и столбцов. Он будет получать данные, относящиеся к указанному запросу.
  • Механизм выполнения (EE), в свою очередь, связывается с демонами Hadoop, такими как узел имени, узлы данных и средство отслеживания заданий, для выполнения запроса поверх файловой системы Hadoop.
  1. Получение результатов от водителя
  2. Отправка результатов в Механизм выполнения. Как только результаты извлекаются из узлов данных в EE, он отправляет результаты обратно в драйвер и в интерфейс пользователя (интерфейс)

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

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

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

Эти режимы

  • Локальный режим
  • Режим уменьшения карты

Когда использовать Локальный режим:

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

Когда использовать режим уменьшения карты:

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

В Hive мы можем установить это свойство, чтобы указать, какой режим Hive может работать? По умолчанию он работает в режиме Map Reduce, а для локального режима вы можете иметь следующие настройки.

Улей для работы в локальном режиме установлен

SET mapred.job.tracker = local;

Начиная с версии 0.7 Hive, он поддерживает режим автоматического запуска задания сокращения карт в локальном режиме.

Что такое Hive Server2 (HS2)?

HiveServer2 (HS2) — это интерфейс сервера, который выполняет следующие функции:

  • Позволяет удаленным клиентам выполнять запросы к Hive
  • Получить результаты упомянутых запросов

В последней версии он имеет некоторые расширенные функции, такие как Thrift RPC;

  • Многопользовательский параллелизм
  • Аутентификация

Резюме:

Hive — это инструмент ETL и хранилище данных на вершине экосистемы Hadoop, используемый для обработки структурированных и полуструктурированных данных.

  • Hive — это база данных, присутствующая в экосистеме Hadoop, которая выполняет операции DDL и DML, и предоставляет гибкий язык запросов, такой как HQL, для улучшения запросов и обработки данных.
  • Он предоставляет множество функций по сравнению с RDMS, которая имеет определенные ограничения.

Для пользовательской логики для удовлетворения требований клиента.

  • Он предоставляет возможность написания и развертывания пользовательских сценариев и пользовательских функций.
  • Кроме того, он предоставляет разделы и корзины для логики хранения.