Учебники

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

Термин «Большие данные» используется для сбора больших наборов данных, которые включают огромный объем, высокую скорость и разнообразные данные, число которых увеличивается день ото дня. Используя традиционные системы управления данными, трудно обрабатывать большие данные. Поэтому Apache Software Foundation представил платформу Hadoop для решения задач управления и обработки больших данных.

Hadoop

Hadoop — это среда с открытым исходным кодом для хранения и обработки больших данных в распределенной среде. Он содержит два модуля: один — MapReduce, а другой — распределенную файловую систему Hadoop (HDFS).

  • MapReduce: это модель параллельного программирования для обработки больших объемов структурированных, полуструктурированных и неструктурированных данных на больших кластерах товарного оборудования.

  • HDFS: распределенная файловая система Hadoop является частью инфраструктуры Hadoop, используемой для хранения и обработки наборов данных. Он обеспечивает отказоустойчивую файловую систему для работы на обычном оборудовании.

MapReduce: это модель параллельного программирования для обработки больших объемов структурированных, полуструктурированных и неструктурированных данных на больших кластерах товарного оборудования.

HDFS: распределенная файловая система Hadoop является частью инфраструктуры Hadoop, используемой для хранения и обработки наборов данных. Он обеспечивает отказоустойчивую файловую систему для работы на обычном оборудовании.

Экосистема Hadoop содержит различные подпроекты (инструменты), такие как Sqoop, Pig и Hive, которые используются для помощи модулям Hadoop.

  • Sqoop: используется для импорта и экспорта данных между HDFS и RDBMS.

  • Свинья: Это процедурная языковая платформа, используемая для разработки скрипта для операций MapReduce.

  • Hive: это платформа, используемая для разработки сценариев типа SQL для выполнения операций MapReduce.

Sqoop: используется для импорта и экспорта данных между HDFS и RDBMS.

Свинья: Это процедурная языковая платформа, используемая для разработки скрипта для операций MapReduce.

Hive: это платформа, используемая для разработки сценариев типа SQL для выполнения операций MapReduce.

Примечание. Существуют различные способы выполнения операций MapReduce:

  • Традиционный подход с использованием программы Java MapReduce для структурированных, полуструктурированных и неструктурированных данных.
  • Подход сценариев для MapReduce для обработки структурированных и полуструктурированных данных с использованием Pig.
  • Язык запросов Hive (HiveQL или HQL) для MapReduce для обработки структурированных данных с использованием Hive.

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

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

Изначально Hive разрабатывался Facebook, позже Apache Software Foundation взялся за него и развивал его как открытый исходный код под названием Apache Hive. Используется разными компаниями. Например, Amazon использует его в Amazon Elastic MapReduce.

Улей нет

  • Реляционная база данных
  • Проект для обработки транзакций OnLine (OLTP)
  • Язык запросов в реальном времени и обновлений на уровне строк

Особенности Улья

  • Он хранит схему в базе данных и обрабатывает данные в HDFS.
  • Он предназначен для OLAP.
  • Он предоставляет язык типов SQL для запросов, называемых HiveQL или HQL.
  • Это знакомо, быстро, масштабируемо и расширяемо.

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

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

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

Эта диаграмма компонентов содержит различные единицы. Следующая таблица описывает каждую единицу:

Название объекта операция
Пользовательский интерфейс Hive — это программное обеспечение инфраструктуры хранилища данных, которое может создавать взаимодействие между пользователем и HDFS. Пользовательские интерфейсы, которые поддерживает Hive: веб-интерфейс Hive, командная строка Hive и Hive HD Insight (на сервере Windows).
Мета Магазин Hive выбирает соответствующие серверы баз данных для хранения схемы или метаданных таблиц, баз данных, столбцов в таблице, их типов данных и сопоставления HDFS.
HiveQL Process Engine HiveQL аналогичен SQL для запроса информации о схеме в Metastore. Это одна из замен традиционного подхода к программе MapReduce. Вместо того, чтобы писать программу MapReduce на Java, мы можем написать запрос для задания MapReduce и обработать его.
Двигатель исполнения Соединительной частью HiveQL Process Engine и MapReduce является Hive Execution Engine. Механизм выполнения обрабатывает запрос и генерирует результаты так же, как и результаты MapReduce. Он использует аромат MapReduce.
HDFS или HBASE Распределенная файловая система Hadoop или HBASE — это методы хранения данных для хранения данных в файловой системе.

Работа Улей

На следующей диаграмме показан рабочий процесс между Hive и Hadoop.

Как работает улей

Следующая таблица определяет, как Hive взаимодействует с платформой Hadoop:

Интерфейс Hive, такой как командная строка или веб-интерфейс, отправляет запрос драйверу (любой драйвер базы данных, такой как JDBC, ODBC и т. Д.) Для выполнения.

Драйвер пользуется помощью компилятора запросов, который анализирует запрос, чтобы проверить синтаксис и план запроса или требование запроса.

Компилятор отправляет запрос метаданных в Metastore (любую базу данных).

Metastore отправляет метаданные как ответ компилятору.

Компилятор проверяет требование и отправляет план водителю. На этом разбор и компиляция запроса завершены.

Драйвер отправляет план выполнения в механизм выполнения.

Внутренне процесс выполнения задания является заданием MapReduce. Механизм выполнения отправляет задание в JobTracker, который находится в узле Name, и назначает это задание в TaskTracker, который находится в узле Data. Здесь запрос выполняет задание MapReduce.

Между тем во время выполнения механизм исполнения может выполнять операции метаданных с Metastore.

Механизм выполнения получает результаты от узлов данных.

Механизм выполнения отправляет эти результирующие значения драйверу.

Драйвер отправляет результаты в интерфейсы Hive.