Hive — це широко використовуваний інструмент аналітики великих даних у бізнесі, і це фантастичне місце для початку, якщо ви новачок у великих даних. У цьому уроці Apache Hive розповідається про основи Apache Hive, навіщо потрібен вулик, його особливості та все інше, що ви повинні знати.
Давайте спочатку розберемося з фреймворком Hadoop, на якому побудовано Apache Hive.
Apache Hadoop
Apache Hadoop є безкоштовним і з відкритим вихідним кодом платформа для зберігання та обробки великих наборів даних розміром від гігабайт до петабайт. Hadoop дозволяє об’єднувати численні комп’ютери в кластери для паралельного аналізу величезних наборів даних, замість того, щоб вимагати одного великого комп’ютера для зберігання та аналізу даних.
MapReduce і розподілена файлова система Hadoop є двома компонентами:
- MapReduce – MapReduce – це метод паралельного програмування для обробки величезних обсягів організованих, напівструктурованих і неструктурованих даних про кластери товарного обладнання.
- HDFS – HDFS (розподілена файлова система Hadoop) – це компонент платформи Hadoop, який зберігає та обробляє дані. Це відмовостійка файлова система, яка працює на стандартному обладнанні
Різні підпроекти (інструменти) в екосистемі Hadoop, включаючи Sqoop, Pig і Hive, використовуються для допомоги модулям Hadoop.
- Вулик – Hive – це платформа для написання сценаріїв у стилі SQL, які виконують обчислення MapReduce.
- Свиня – Pig – це процедурна мова програмування, яку можна використовувати для створення сценарію для процесів MapReduce.
- Скуп – Sqoop – це інструмент для імпорту та експорту даних між HDFS та RDBMS.
Що таке Вулик апачів?
Apache Hive є відкритим кодом сховище даних програма для читання, запису та керування величезними наборами даних, які зберігаються безпосередньо в розподіленій файловій системі Apache Hadoop (HDFS) або інших системах зберігання даних, таких як Apache HBase.
Розробники SQL можуть використовувати Hive для створення операторів мови запитів Hive (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 Query Language) використовується для доступу до даних, які можна змінювати або додавати. Дані таблиці серіалізуються в кожній базі даних, і кожна таблиця має свій власний каталог HDFS.
архітектура
Тепер ми поговоримо про найважливіший аспект архітектури вулика. Компоненти Apache Hive є такими:
Метасховище — Він відстежує інформацію про кожну таблицю, таку як її структура та розташування. Метадані розділу також включені в Hive. Це дозволяє водієві відстежувати хід різних наборів даних, розподілених по кластеру. Дані зберігаються у звичайному форматі СУБД. Метадані Hive надзвичайно важливі для водія для відстеження даних. Сервер резервного копіювання регулярно дублює дані, щоб їх можна було відновити у разі втрати даних.
Водій – Оператори HiveQL отримуються драйвером, який функціонує як контролер. Встановлюючи сеанси, водій ініціює виконання оператора. Він відстежує тривалість життя та прогрес керівника. Під час виконання оператора HiveQL драйвер зберігає необхідні метадані. Він також служить точкою збору даних або результатів запиту після процесу зменшення.
компілятор – Він виконує компіляцію запитів HiveQL. Тепер запит перетворюється на план виконання. Завдання вказані в плані. Він також містить кроки, які MapReduce має зробити, щоб отримати результат, перекладений запитом. Запит перетворюється на абстрактне синтаксичне дерево компілятором Hive (AST). Перетворює AST на орієнтований ациклічний графік після перевірки на сумісність і помилки часу компіляції (DAG).
Оптимізатор – Він оптимізує DAG, вносячи різні зміни в план виконання. Він поєднує в собі трансформації для підвищення ефективності, наприклад перетворення конвеєра з’єднань в єдине з’єднання. Щоб підвищити швидкість, оптимізатор може розділити дії, такі як застосування перетворення до даних перед виконанням операції скорочення.
виконавець – Виконавець запускає завдання після завершення компіляції та оптимізації. Завдання розробляє Виконавець.
CLI, UI та 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 може містити 100 петабайт даних, що робить його набагато більш масштабованим варіантом, ніж звичайна база даних. Apache Hive, як хмарний сервіс Hadoop, дозволяє клієнтам швидко розкручувати віртуальні сервери вгору і вниз для задоволення мінливих робочих навантажень.
- Широка працездатність – Великі набори даних можуть обробляти до 100,000 XNUMX запитів на годину.
Недоліки
- Загалом, запити Apache Hive мають дуже високу затримку.
- Підтримка підзапитів обмежена.
- Запити в режимі реального часу та зміни на рівні рядків недоступні в Apache Hive.
- Матеріалізовані погляди не підтримуються.
- У вулику дії оновлення та видалення не підтримуються.
- Не призначений для OLTP (перехідний онлайн-процес).
Початок роботи з Apache Hive
Apache Hive — це сильний партнер Hadoop, який спрощує та впорядковує ваші робочі процеси. Щоб отримати максимальну віддачу від Apache Hive, необхідна безпроблемна інтеграція. Перший крок – це перейти до сайт.
1. Інсталяційний Hive зі стабільного випуску
Почніть із завантаження останньої стабільної версії Hive з одного з дзеркал завантаження Apache (див Випуски вуликів). Після цього tar-архів необхідно розпакувати. Це створить підпапку з назвою hive-xyz (де xyz — номер випуску):
Встановіть змінну середовища HIVE_HOME так, щоб вона вказувала на каталог встановлення:
Нарешті, додайте $HIVE_HOME/bin до свого PATH
:
2. Запущений вулик
Hive використовує Hadoop, тому:
- ви повинні мати Hadoop на вашому шляху АБО
3. Робота DLL
Створення таблиці вуликів
генерує таблицю з іменем pokes з двома стовпцями, перший з яких є цілим числом, а другий — рядком.
Перегляд таблиць
Перерахування всіх таблиць
Зміна та викидання таблиць
Назви таблиць можна змінити, а стовпці можна додати або замінити:
Варто зазначити, що REPLACE COLUMNS замінює всі існуючі стовпці, змінюючи лише структуру таблиці, а не дані. У таблиці необхідно використовувати рідний SerDe. REPLACE COLUMNS також можна використовувати для видалення стовпців зі схеми таблиці:
Викидання таблиць
У Apache Hive є багато додаткових операцій і функцій, про які ви можете дізнатися, відвідавши офіційний веб-сайт.
Висновок
Hive definition — це програмний інтерфейс даних для запитів і аналізу величезних наборів даних, створених на основі Apache Hadoop. Професіонали вибирають його перед іншими програмами, інструментами та програмним забезпеченням, оскільки він в основному розроблений для великих даних Hive і простий у використанні.
Сподіваюся, цей підручник допоможе вам почати роботу з Apache Hive і зробити ваші робочі процеси більш ефективними. Дайте нам знати в коментарях.
залишити коментар