Hive — это широко используемый в бизнесе инструмент анализа больших данных, и это отличное место для начала, если вы новичок в больших данных. В этом уроке по Apache Hive рассматриваются основы Apache Hive, зачем нужен куст, его функции и все остальное, что вам следует знать.
Давайте сначала разберемся с инфраструктурой Hadoop, на которой построен Apache Hive.
Apache Hadoop
Apache Hadoop — это бесплатная и открытые источники платформа для хранения и обработки больших наборов данных размером от гигабайт до петабайт. Hadoop позволяет объединять множество компьютеров в кластеры для параллельного анализа огромных наборов данных, вместо того чтобы хранить и анализировать данные на одном большом компьютере.
MapReduce и распределенная файловая система Hadoop — это два компонента:
- Уменьшение карты – MapReduce — это метод параллельного программирования для обработки огромных объемов организованных, частично структурированных и неструктурированных данных на обычных аппаратных кластерах.
- HDFS – HDFS (распределенная файловая система Hadoop) — это компонент инфраструктуры Hadoop, который хранит и обрабатывает данные. Это отказоустойчивая файловая система, работающая на стандартном оборудовании.
Различные подпроекты (инструменты) в экосистеме Hadoop, включая Sqoop, Pig и Hive, используются для поддержки модулей Hadoop.
- Hive — Hive — это платформа для написания сценариев в стиле SQL, выполняющих вычисления MapReduce.
- Свинья – Pig – это процедурный язык программирования, который можно использовать для создания сценария для процессов MapReduce.
- Скуп — Sqoop — это инструмент для импорта и экспорта данных между HDFS и RDBMS.
Что такое Апачский улей?
Apache Hive — это программа с открытым исходным кодом. информационное хранилище программа для чтения, записи и управления огромными наборами данных, хранящихся непосредственно в распределенной файловой системе Apache Hadoop (HDFS) или других системах хранения данных, таких как Apache HBase.
Разработчики SQL могут использовать Hive для создания инструкций Hive Query Language (HQL) для запросов и анализа данных, которые сопоставимы с обычными инструкциями SQL. Он был создан, чтобы упростить программирование MapReduce за счет устранения необходимости изучения и написания длинного кода Java. Вместо этого вы можете написать свои запросы на HQL, а Hive построит карту и сократит функции для вас.
SQL-подобный интерфейс Apache Hive стал золотым стандартом для выполнения специального поиска, обобщения и анализа данных Hadoop. При включении в облако вычислительные сети, это решение особенно рентабельно и масштабируемо, поэтому многие фирмы, включая Netflix и Amazon, продолжают развивать и улучшать Apache Hive.
История
Во время работы в Facebook Джойдип Сен Сарма и Ашиш Тусу совместно создали Apache Hive. Они оба поняли, что для получения максимальной отдачи от Hadoop им придется создать несколько довольно сложных задач Java Map-Reduce. Они поняли, что не смогут обучить свои быстрорастущие команды инженеров и аналитиков навыкам, которые им потребуются для использования Hadoop в масштабах всей компании. Инженеры и аналитики часто использовали SQL в качестве пользовательского интерфейса.
Хотя SQL мог удовлетворить большинство потребностей в аналитике, разработчики также намеревались использовать возможности программирования Hadoop. Apache Hive возник из-за этих двух целей: декларативный язык на основе SQL, который также позволял разработчикам вносить свои собственные сценарии и программы, когда SQL было недостаточно.
Он также был разработан для хранения централизованных метаданных (на основе Hadoop) обо всех наборах данных в компании, чтобы упростить создание организаций, управляемых данными.
Как работает Apache Hive?
Короче говоря, Apache Hive преобразует входную программу, написанную на языке HiveQL (подобном SQL), в одну или несколько задач Java MapReduce, Tez или Spark. (Все эти механизмы выполнения совместимы с Hadoop YARN.) После этого Apache Hive упорядочивает данные в таблицы для распределенной файловой системы Hadoop (HDFS) и выполняет задачи в кластере, чтобы получить ответ.
Данные
Таблицы Apache Hive устроены так же, как организованы таблицы в реляционной базе данных, с единицами данных, размер которых варьируется от большего к меньшему. Базы данных состоят из таблиц, разделенных на разделы, которые далее делятся на сегменты. HiveQL (язык запросов Hive) используется для доступа к данным, которые можно изменить или добавить. Данные таблицы сериализуются в каждой базе данных, и каждая таблица имеет свой собственный каталог HDFS.
Архитектура
Теперь мы поговорим о самом важном аспекте архитектуры Hive. Компоненты Apache Hive следующие:
Метастор — Он отслеживает информацию о каждой таблице, такую как ее структура и расположение. Метаданные раздела также включены в Hive. Это позволяет драйверу отслеживать ход выполнения различных наборов данных, разбросанных по кластеру. Данные хранятся в обычном формате РСУБД. Метаданные куста чрезвычайно важны для драйвера, чтобы отслеживать данные. Резервный сервер регулярно дублирует данные, чтобы их можно было восстановить в случае потери данных.
Драйвер – Операторы HiveQL принимаются драйвером, выполняющим функции контроллера. Устанавливая сеансы, драйвер инициирует выполнение инструкции. Он отслеживает продолжительность жизни и прогресс руководителя. Во время выполнения инструкции HiveQL драйвер сохраняет необходимые метаданные. Он также служит точкой сбора данных или результатов запроса после процесса сокращения.
составитель — Он выполняет компиляцию запроса HiveQL. Теперь запрос преобразован в план выполнения. Задачи указаны в плане. Он также включает шаги, которые должен выполнить MapReduce для получения результата, переведенного запросом. Компилятор Hive (AST) преобразует запрос в абстрактное синтаксическое дерево. Преобразует AST в направленный ациклический граф после проверки совместимости и ошибок времени компиляции (DAG).
Оптимизатор – Он оптимизирует DAG, выполняя различные изменения в плане выполнения. Он сочетает в себе преобразования для повышения эффективности, такие как преобразование конвейера соединений в одно соединение. Для повышения скорости оптимизатор может разделить действия, такие как применение преобразования к данным перед выполнением операции сокращения.
душеприказчик – Исполнитель запускает задачи после завершения компиляции и оптимизации. Задания конвейеризируются Исполнителем.
CLI, пользовательский интерфейс и Thrift Server – Интерфейс командной строки (CLI) — это пользовательский интерфейс, который позволяет внешнему пользователю взаимодействовать с Hive. Экономичный сервер Hive, аналогичный протоколам JDBC или ODBC, позволяет внешним клиентам связываться с Hive через сеть.
Безопасность
Apache Hive интегрирован с системой безопасности Hadoop, которая использует протокол Kerberos для взаимной проверки подлинности клиент-сервер. HDFS диктует разрешения для вновь созданных файлов в Apache Hive, позволяя вам утверждать их пользователем, группой и другими пользователями.
Ключевые характеристики
- Hive поддерживает внешние таблицы, которые позволяют обрабатывать данные, не сохраняя их в HDFS.
- Это также позволяет сегментировать данные на уровне таблицы для увеличения скорости.
- Apache Hive превосходно удовлетворяет потребность Hadoop в низкоуровневом интерфейсе.
- Hive упрощает обобщение данных, запросы и анализ.
- HiveQL не требует навыков программирования; достаточно простого понимания запросов SQL.
- Мы также можем использовать Hive для выполнения специальных запросов для анализа данных.
- Он масштабируемый, знакомый и адаптируемый.
- HiveQL не требует навыков программирования; достаточно простого понимания запросов SQL.
Преимущества
Apache Hive позволяет создавать отчеты на конец дня, ежедневные оценки транзакций, специальные поиски и анализ данных. Комплексные аналитические данные, предоставляемые Apache Hive, дают значительные конкурентные преимущества и упрощают реагирование на требования рынка.
Вот некоторые из преимуществ наличия такой информации:
- Простота в использовании – Благодаря языку, похожему на SQL, запрос данных прост для понимания.
- Ускоренная вставка данных — Поскольку Apache Hive считывает схему без проверки типа таблицы или определения схемы, данные не нужно считывать, анализировать и сериализовать на диск во внутреннем формате базы данных. Напротив, в обычной базе данных данные должны проверяться каждый раз при их добавлении.
- Превосходная масштабируемость, гибкость и экономичность – Поскольку данные хранятся в HDFS, Apache Hive может хранить сотни петабайт данных, что делает его гораздо более масштабируемым вариантом, чем обычная база данных. Apache Hive как облачная служба Hadoop позволяет клиентам быстро включать и выключать виртуальные серверы в соответствии с меняющимися рабочими нагрузками.
- Обширная работоспособность – Большие наборы данных могут обрабатывать до 100,000 XNUMX запросов в час.
ограничения
- Как правило, запросы Apache Hive имеют очень большую задержку.
- Поддержка подзапросов ограничена.
- Запросы в реальном времени и изменения на уровне строк недоступны в Apache Hive.
- Материализованные представления не поддерживаются.
- В улье действия обновления и удаления не поддерживаются.
- Не предназначен для OLTP (онлайн-переходный процесс).
Начало работы с Apache Hive
Apache Hive — надежный партнер Hadoop, который упрощает и оптимизирует ваши рабочие процессы. Чтобы получить максимальную отдачу от Apache Hive, необходима бесшовная интеграция. Первый шаг - перейти к веб-сайт.
1. Установка Hive из стабильной версии
Начните с загрузки последней стабильной версии Hive с одного из зеркал загрузки Apache (см. Выпуски улья). Затем архив необходимо распаковать. Это создаст подпапку с именем hive-xyz (где xyz — номер версии):
Установите переменную среды HIVE_HOME так, чтобы она указывала на каталог установки:
Наконец, добавьте $HIVE_HOME/bin в свой PATH
:
2. Работающий улей
Hive использует Hadoop, поэтому:
- у вас должен быть Hadoop на вашем пути ИЛИ
3. Работа с DLL
Создание таблицы куста
генерирует таблицу с именем pokes с двумя столбцами, первый из которых является целым числом, а второй — строкой.
Просмотр таблиц
Список всех таблиц
Изменение и удаление таблиц
Имена таблиц могут быть изменены, а столбцы могут быть добавлены или заменены:
Стоит отметить, что REPLACE COLUMNS заменяет все существующие столбцы, изменяя только структуру таблицы, а не данные. В таблице должен использоваться родной SerDe. REPLACE COLUMNS также можно использовать для удаления столбцов из схемы таблицы:
Удаление таблиц
В Apache Hive есть много дополнительных операций и функций, о которых вы можете узнать, посетив официальный сайт.
Заключение
Определение Hive — это программный интерфейс данных для запросов и анализа огромных наборов данных, созданный поверх Apache Hadoop. Профессионалы предпочитают его другим программам, инструментам и программному обеспечению, поскольку он в основном предназначен для обширных данных Hive и прост в использовании.
Надеемся, что это руководство поможет вам начать работу с Apache Hive и сделать ваши рабочие процессы более эффективными. Дайте нам знать об этом в комментариях.
Оставьте комментарий