Что такое улей? Archiтекстура и режимы

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

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

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

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

  • В Hive сначала создаются таблицы и базы данных, а затем в эти таблицы загружаются данные.
  • Hive как хранилище данных, предназначенное для управления и запроса только структурированных данных, хранящихся в таблицах.
  • При работе со структурированными данными Map Download не имеет функций оптимизации и удобства использования, таких как UDF, но есть в среде Hive. Оптимизация запросов — это эффективный способ выполнения запросов с точки зрения производительности.
  • Язык Hive, основанный на SQL, отделяет пользователя от компьютера.plexКачество программирования MapReduce. Для простоты обучения он повторно использует знакомые концепции из мира реляционных баз данных, такие как таблицы, строки, столбцы, схемы и т. д.
  • Программирование Hadoop работает с плоскими файлами. Таким образом, Hive может использовать структуры каталогов для «разделения» данных для повышения производительности при выполнении определенных запросов.
  • Новый и важный компонент Hive, т.е. Metastore, используемый для хранения информации о схеме. Это хранилище Metastore обычно находится в реляционной базе данных. Мы можем взаимодействовать с Hive, используя такие методы, как
    • Веб-интерфейс
    • Интерфейс подключения к базе данных Java (JDBC)
  • Большинство взаимодействий обычно происходит через интерфейс командной строки (CLI). Hive предоставляет интерфейс командной строки для написания запросов Hive с использованием языка запросов Hive (HQL).
  • В целом синтаксис HQL аналогичен синтаксису SQL синтаксис, с которым знакомо большинство аналитиков данных. В приведенном ниже примере запроса отображаются все записи, присутствующие в указанной таблице.
    • Образец запроса : Выберите из
  • Hive поддерживает четыре формата файлов: ТЕКСТОВЫЙ ФАЙЛ, ПОСЛЕДОВАТЕЛЬНЫЙ ФАЙЛ, ORC и RCFILE (Запись столбчатого файла).
  • Для хранения метаданных одного пользователя Hive использует базу данных derby, а для метаданных нескольких пользователей или общих метаданных Hive использует MYSQL.

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

Некоторые ключевые моменты об Hive:

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

Улей против реляционных баз данных

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

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

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

Реляционные базы данных имеют «Схема при ЧТЕНИИ и Схема при записи«. Сначала создайте таблицу, а затем вставьте данные в конкретную таблицу. В таблицах реляционной базы данных можно выполнять такие функции, как вставки, обновления и модификации.

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

Кроме того, Hive поддерживает «ЧИТАЙТЕ Многие ПИШИТЕ ОДИН РАЗ" шаблон. Это означает, что после вставки таблицы мы можем обновить ее в последних версиях Hive.

ЗАМЕТКА: Однако новая версия Hive имеет обновленные функции. Версии Hive (Hive 0.14) содержат опции обновления и удаления в качестве новых функций.

Hive Archiтекстура

Hive Archiтекстура

На скриншоте выше объясняется апаш Hive archiтектура в деталях

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

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

Клиенты Улья:

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

Что касается Java связанные приложения, он предоставляет драйверы JDBC. Помимо любого типа приложений предусмотрены драйверы ODBC. Эти клиенты и драйверы, в свою очередь, снова взаимодействуют с сервером Hive в службах Hive.

Услуги улья:

Взаимодействие клиента с Hive может осуществляться через Hive Services. Если клиент хочет выполнить какие-либо операции, связанные с запросами, в Hive, он должен взаимодействовать через службы Hive.

CLI — это интерфейс командной строки, действующий как служба Hive для операций DDL (язык определения данных). Все драйверы взаимодействуют с сервером Hive и с основным драйвером в службах Hive, как показано выше. archiтектурная диаграмма.

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

Хранение улья и вычисления:

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

  • Метаданные таблиц, созданных в Hive, хранятся в Hive «База данных хранения метаданных».
  • Результаты запросов и данные, загруженные в таблицы, будут храниться в кластере Hadoop на HDFS.

Порядок выполнения задания:

Порядок выполнения задания

На приведенном выше снимке экрана мы можем понять процесс выполнения задания в Hive с Hadoop.

Поток данных в Hive ведет себя следующим образом.wing шаблон;

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

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

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

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

Эти режимы,

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

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

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

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

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

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

Настроен Hive для работы в локальном режиме

SET mapred.job.tracker=local;

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

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

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

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

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

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

Итоги

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

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

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

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