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

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

Hadoop

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

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

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

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

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

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

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

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

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

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

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

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

Улей нет

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

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

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

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

На следующей схеме компонентов изображена архитектура Hive:

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

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

Работа улья

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

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

Шаг № Операция
1 Execute Query

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

2 Get Plan

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

3 Get Metadata

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

4 Send Metadata

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

5 Send Plan

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

6 Execute Plan

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

7 Execute Job

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

7.1 Metadata Ops

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

8 Fetch Result

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

9 Send Results

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

10 Send Results

Драйвер отправляет результаты в Hive Interfaces.