Что такое улей? Архитектура и архитектура Режимы

Содержание:

Anonim

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

  • Что такое улей?
  • Улей Архитектура
  • Различные режимы улья
  • Что такое 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 основных частей

  1. Клиенты Hive
  2. Сервисы Hive
  3. 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 ведет себя следующим образом;

  1. Выполнение запроса из пользовательского интерфейса (пользовательский интерфейс)
  2. Драйвер взаимодействует с компилятором для получения плана. (Здесь план относится к выполнению запроса) процесс и связанный с ним сбор информации метаданных
  3. Компилятор создает план выполнения задания. Компилятор обменивается данными с хранилищем метаданных для получения запроса метаданных
  4. Мета-хранилище отправляет информацию метаданных обратно компилятору
  5. Компилятор связывается с драйвером с предложенным планом выполнения запроса
  6. Драйвер отправляет планы выполнения механизму выполнения
  7. 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.
  1. Получение результатов от драйвера
  2. Отправка результатов в 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, у которой есть определенные ограничения.

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

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