Что такое Hive в Hadoop? История и ее составляющие
Опубликовано: 2021-10-07Apache Hive — это система хранения данных с открытым исходным кодом, построенная на основе Hadoop. Hive используется для запросов и анализа массивных наборов данных, хранящихся в Hadoop. Он работает, обрабатывая как структурированные, так и полуструктурированные данные.
В этой статье давайте подробно поговорим о Hive в Hadoop, его истории, важности, архитектуре Hive, некоторых ключевых функциях, некоторых ограничениях и многом другом!
Оглавление
Что такое Улей?
Apache Hive — это просто программное обеспечение хранилища данных, созданное с использованием Hadoop в качестве основы. До появления Apache Hive инженерам по работе с большими данными приходилось писать сложные задания по уменьшению карты для выполнения задач запросов. С Hive, с другой стороны, все резко сократилось, поскольку теперь инженерам нужно знать только SQL.
Hive работает на языке, известном как HiveQL (похожем на SQL), что упрощает работу инженеров, имеющих практические знания SQL. HiveQL автоматически преобразует ваши SQL-запросы в задания по уменьшению карты, которые может выполнять Hadoop.
При этом Apache представляет концепцию абстракции в работе Hadoop и позволяет экспертам по данным работать со сложными наборами данных без изучения языка программирования Java для работы с Hive. Apache Hive работает на вашей рабочей станции и преобразует SQL-запросы в задания по уменьшению карты, которые будут выполняться в кластере Hadoop. Hive распределяет все ваши данные по таблицам, тем самым предоставляя структуру всем данным, представленным в HDFS.
История Apache Hive
Группа по инфраструктуре данных представила Apache Hive в Facebook. Это одна из технологий, активно используемых в Facebook для многочисленных внутренних целей. За прошедшие годы Apache Hive выполнил тысячи заданий в кластере с сотнями пользователей для различных приложений.
Кластер Hive-Hadoop в Facebook хранит более 3 ПБ необработанных данных. Он может ежедневно загружать 15 ТБ данных в режиме реального времени. С этого момента возможности использования Apache Hive еще больше расширились, и сегодня его используют такие гиганты, как IBM, Yahoo, Amazon, FINRA, Netflix и другие.
Получите онлайн- сертификат по науке о данных в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Зачем нужен Apache Hive?
Прежде чем приступить к Apache Hive, Facebook столкнулся со многими проблемами, такими как постоянно увеличивающийся размер данных для анализа и полная несогласованность в этом большом наборе данных. Эти проблемы мешали Facebook беспрепятственно справляться с задачами, требующими больших объемов данных. Традиционных структур, основанных на РСУБД, было недостаточно, чтобы контролировать постоянно растущее давление.
Facebook впервые представил функцию уменьшения карты, чтобы преодолеть эти проблемы, но затем еще больше упростил ее, предложив Apache Hive, который работает на HiveQL.
В конце концов, Apache Hive стал столь необходимым спасителем и помог Facebook преодолеть различные проблемы. Теперь с помощью Apache Hive Facebook удалось добиться следующего:
- Эволюция и гибкость схемы.
- Разделение и группирование таблиц.
- Определение таблиц Hive непосредственно в HDFS.
- Наличие драйверов ODBC/JDBC.
В целом, Apache Hive помог разработчикам сэкономить много времени, которое в противном случае ушло бы на написание сложных заданий по уменьшению карты. Hive упрощает обобщение, анализ, запросы и изучение данных.
Основанный только на SQL, Apache Hive представляет собой быструю и масштабируемую среду с широкими возможностями расширения. Если вы понимаете основы запросов с использованием SQL, вы сможете работать с Apache Hive в кратчайшие сроки! Он также предлагает доступ к файлам в различных хранилищах данных, таких как HBase и HDFS.
Архитектура Apache Hive
Теперь, когда вы понимаете важность и появление Apache Hive, давайте рассмотрим основные компоненты Apache Hive. Архитектура Apache Hive включает в себя:
1. Метастор
Это используется для хранения метаданных для каждой из таблиц. Метаданные обычно состоят из местоположения и схемы. Хранилище метаданных также состоит из метаданных разделов, которые помогают инженерам отслеживать ход выполнения различных наборов данных, распределенных по кластерам. Данные, которые здесь хранятся, представлены в традиционном формате СУБД.
2. Драйвер
Драйвер в Apache Hive похож на контроллер, отвечающий за получение операторов HiveQL. Затем он начинает выполнение этих операторов, создавая разные сеансы. Драйвер также отвечает за мониторинг и управление жизненным циклом реализации и ее продвижением по пути. Драйверы содержат все важные метаданные, которые генерируются при выполнении оператора HiveQL. Он также действует как точка сбора данных, полученных после операции уменьшения карты.
3. Компилятор
Компилятор используется для компиляции запросов HiveQL. Он преобразует пользовательские запросы в надежный план выполнения, который содержит все задачи, которые необходимо выполнить. План также включает все шаги и процедуры, необходимые для выполнения операции map-reduce для получения требуемых результатов. Компилятор Hive преобразует пользовательский запрос в AST (абстрактное синтаксическое дерево) для проверки на наличие ошибок времени компиляции или проблем совместимости. AST преобразуется в направленный ациклический граф (DAG), когда ни одна из проблем не возникает.
4. Оптимизатор
Оптимизатор выполняет все преобразования плана выполнения, необходимые для достижения оптимизированной DAG. Это достигается за счет объединения всех преобразований вместе, например, преобразования массива отдельных соединений в одно соединение — для повышения производительности. Кроме того, оптимизатор может разделять разные задачи, применяя преобразование данных перед выполнением сокращенной операции — опять же, для повышения общей производительности.
5. Исполнитель –
После того, как Apache Hive выполнил задачи компиляции и оптимизации, исполнитель выполняет окончательные выполнения. Он заботится о конвейеризации задач и доводит их до завершения.
6. Интерфейс командной строки, пользовательский интерфейс и Thrift Server
Интерфейс командной строки (CLI) используется для предоставления внешнему пользователю пользовательского интерфейса для взаимодействия с различными функциями Apache Hive. Интерфейс командной строки — это то, что составляет пользовательский интерфейс Hive для конечных пользователей. С другой стороны, сервер Thrift позволяет внешним клиентам взаимодействовать с Hive по сети, подобно протоколам ODBC или JDBC.
Основные возможности Apache Hive
Как упоминалось ранее, Apache Hive внес столь необходимые изменения в то, как инженеры работали над заданиями с данными. Java больше не был популярным языком, и разработчики могли работать, просто используя SQL. Помимо этого, есть несколько других важных функций Hive, таких как:
- Apache Hive предлагает сводку данных, анализ и запросы гораздо более простым способом.
- Hive поддерживает внутренние и внешние таблицы, что позволяет работать с внешними данными, не перенося их в H DFS.
- Apache Hive отлично подходит для низкоуровневого интерфейса Hadoop.
- Поддерживая секционирование данных на уровне таблиц, Apache Hive помогает повысить общую производительность.
- Он имеет оптимизатор на основе правил для оптимизации различных логических планов.
- Он работает на HiveQL, языке, похожем на SQL, что означает, что разработчикам не нужно осваивать другой язык для работы с большими наборами данных.
- Запросы в Hive чрезвычайно просты, как в SQL.
- Мы также можем запускать специальные запросы для анализа данных с помощью Hive.
Ограничение Apache Hive
Поскольку мир науки о данных относительно новый и постоянно развивается, даже самые лучшие инструменты, доступные на рынке, имеют некоторые ограничения. Устранение этих ограничений даст нам следующие лучшие инструменты. Вот несколько ограничений работы с Apache Hive, о которых вам следует помнить:
- Hive не предлагает обновления на уровне строк и запросы в реальном времени.
- Apache Hive обеспечивает приемлемую задержку для интерактивности.
- Это не лучший вариант для работы с онлайн-транзакциями.
- Задержка в запросах Hive обычно выше среднего.
В заключение
Apache Hive привел к радикальным и удивительным улучшениям в том, как инженеры данных работают с большими наборами данных. Кроме того, благодаря полному устранению необходимости в языке программирования Java, Apache Hive принес привычный комфорт инженерам данных. Сегодня вы можете без проблем работать с Apache Hive, если у вас есть базовые знания SQL-запросов.
Как мы упоминали ранее, наука о данных — это динамичная и постоянно развивающаяся область. Мы уверены, что в ближайшие годы появятся новые инструменты и фреймворки, которые еще больше упростят работу. Если вы энтузиаст данных и хотите изучить все инструменты науки о данных, сейчас самое подходящее время, чтобы освоить инструменты для работы с большими данными, такие как Hive.
В upGrad мы наставляли и направляли студентов со всего мира и помогали людям с разным опытом прочно закрепиться в отрасли Data Science. Наши опытные преподаватели, отраслевое партнерство, помощь в трудоустройстве и надежная сеть выпускников гарантируют, что вы никогда не будете одиноки в этом путешествии. Так что ознакомьтесь с нашей программой Executive PG по науке о данных и зарегистрируйтесь в той, которая подходит именно вам — мы позаботимся об остальном!
Apache Hive — это платформа или система, используемая для хранения, запросов и анализа больших наборов данных. Apache Hive был представлен Facebook для улучшения своих внутренних операций и с тех пор является неотъемлемой частью спектра Data Science. Нет! Для начала работы с Apache Hive вам будет достаточно базовых знаний SQL! Apache Hive обычно используется для OLAP (пакетной обработки) и обычно не используется для OLTP из-за операций с базой данных в реальном времени.Что такое Apache Hive в Hadoop?
Нужно ли мне изучать какой-либо конкретный язык для работы с Apache Hive в Hadoop?
Для чего НЕ используется Apache Hive?