Улей - Введение
Термин «большие данные» используется для коллекций больших наборов данных, которые включают огромный объем, высокую скорость и разнообразие данных, которые увеличиваются день ото дня. Используя традиционные системы управления данными, сложно обрабатывать большие данные. Поэтому 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. |