Apache Hive
Предварительные требования - Введение в Hadoop, вычислительные платформы и технологии
Apache Hive - это хранилище данных и инструмент ETL, который обеспечивает SQL-подобный интерфейс между пользователем и распределенной файловой системой Hadoop (HDFS), которая интегрирует Hadoop. Он построен на основе Hadoop. Это программный проект, который обеспечивает запрос и анализ данных. Он облегчает чтение, запись и обработку широких наборов данных, которые хранятся в распределенном хранилище и запрашиваются с помощью синтаксиса языка запросов структуры (SQL). Он не предназначен для рабочих нагрузок онлайн-обработки транзакций (OLTP). Он часто используется для задач хранения данных, таких как инкапсуляция данных, специальные запросы и анализ огромных наборов данных. Он разработан для повышения масштабируемости, расширяемости, производительности, отказоустойчивости и слабой связи с входными форматами.
Первоначально Hive разработан Facebook и Amazon, Netflix и предоставляет стандартные функции SQL для аналитики. Традиционные запросы SQL написаны в Java API MapReduce для выполнения приложений SQL и запросов SQL к распределенным данным. Hive обеспечивает переносимость, поскольку большинство приложений для хранилищ данных работают с языками запросов на основе SQL, такими как NoSQL.
Компоненты Hive:
- HCatalog -
Это компонент Hive и таблица, а также уровень управления магазином для Hadoop. Он позволяет пользователю использовать различные инструменты обработки данных, такие как Pig и MapReduce, которые позволяют легко читать и писать в сетке. - WebHCat -
Он предоставляет службу, которая может использоваться пользователем для запуска задач Hadoop MapReduce (или YARN), Pig, Hive или выполнения операций с метаданными Hive с помощью интерфейса HTTP.
Режимы улья:
- Улей работает в двух основных режимах, которые описаны ниже. Эти режимы зависят от размера узлов данных в Hadoop.
- Локальный режим -
Он используется, когда Hadoop построен в псевдорежиме, который имеет только один узел данных, когда размер данных меньше в смысле ограничения на одну локальную машину, и когда обработка будет быстрее на меньших наборах данных, существующих на локальной машине. - Режим уменьшения карты -
Он используется, когда Hadoop построен с несколькими узлами данных и данные разделены между различными узлами, он будет работать с огромными наборами данных, а запрос выполняется параллельно, и для достижения повышенной производительности при обработке больших наборов данных.
Характеристики улья:
- Базы данных и таблицы создаются перед загрузкой данных.
- Hive как хранилище данных создано для управления и запроса только структурированных данных, находящихся в таблицах.
- Во время обработки структурированных данных в MapReduce отсутствуют функции оптимизации и удобства использования, такие как UDF, тогда как инфраструктура Hive имеет оптимизацию и удобство использования.
- Программирование в Hadoop имеет дело непосредственно с файлами. Таким образом, Hive может разбивать данные на структуры каталогов для повышения производительности определенных запросов.
- Hive совместим с различными форматами файлов, такими как TEXTFILE, SEQUENCEFILE, ORC, RCFILE и т. Д.
- Hive использует базу данных derby в однопользовательском хранилище метаданных и использует MYSQL для многопользовательских метаданных или общих метаданных.
Особенности Hive:
- Он предоставляет индексы, включая индексы растровых изображений, для ускорения запросов. Тип индекса, содержащий индекс сжатия и растрового изображения по состоянию на 0.10.
- Хранение метаданных в СУБД сокращает время на выполнение семантических проверок во время выполнения запроса.
- Встроенные пользовательские функции (UDF) для управления строками, датами и другими инструментами интеллектуального анализа данных. Hive усилен для расширения набора UDF для работы с вариантами использования, не подкрепленными предопределенными функциями.
- DEFLATE, BWT, snappy и т. Д. - это алгоритмы работы со сжатыми данными, которые хранятся в экосистеме Hadoop.
- Он хранит схемы в базе данных и обрабатывает данные в файловой распределенной файловой системе Hadoop (HDFS).
- Он создан для оперативной аналитической обработки (OLAP).
- Он предоставляет различные типы языков запросов, которые часто называют Hive Query Language (HVL или HiveQL).