Як встановити HIVE на Ubuntu (Посібник із завантаження та налаштування)

⚡ Розумний підсумок

Apache Hive встановлюється на Ubuntu як тонкий шар сховища даних над уже запущеним кластером Hadoop, тому налаштування здебільшого зводиться до розпакування одного архіву та вказівки трьох змінних середовища на потрібні каталоги.

  • 🧱 Спочатку Hadoop: Кожен демон Hadoop має бути вже запущений, оскільки Hive зберігає свої табличні дані на HDFS та надсилає свої завдання до кластера.
  • (І.Е. Джерело завантаження: Бінарні релізи надходять зі сторінки-дзеркала Apache, а лінійка 3.x досягла кінця свого життя в жовтні 2024 року.
  • 📁 Два конфігураційні файли: HIVE_HOME належить до bashrc, а HADOOP_HOME належить до hive-config.sh всередині каталогу Hive bin.
  • 💾 Папки HDFS: Каталоги warehouse та tmp повинні існувати на HDFS з груповим дозволом на запис, перш ніж буде створено першу таблицю.
  • 🧩 Крок схеми: Утиліта schematool створює таблиці метасховища, а Hive 3.x та пізніші версії відмовляються запускатися з неініціалізованою схемою.
  • 🔨 Швидко перевірте: Оператор create, за яким слідує describe, доводить, що оболонка, сховище метафайлів та HDFS правильно з'єднані між собою.

Як встановити Hive на Ubuntu

Перед встановленням Apache Hive нам потрібен спеціалізований Hadoop установку, роботу з усіма демонами Hadoop.

Для встановлення Hadoop перевірте це за посиланням.

Щойно всі демони Hadoop запрацюють належним чином, просто розпочніть встановлення частини Hive. Покрокова інструкція нижче складається з чотирьох етапів:

Процес встановлення Apache Hive

  1. Необхідні умови та сумісність версій
  2. Встановлення Hive
  3. Ініціалізація схеми метасховища
  4. Команди оболонки Hive

Необхідні умови для встановлення Apache Hive на Ubuntu

Hive не є окремою базою даних. Це рівень запитів, який перетворює HiveQL на завдання, що виконуються на існуючому кластері, тому майже кожна невдала інсталяція tracповертається до відсутньої передумови, а не до самого Hive. Перед завантаженням будь-чого перевірте наступне:

  • Підтримуваний JDK. Hive 4.1.x працює на JDK 17, тоді як Hive 4.2.x підвищує мінімальний рівень до JDK 21. Перевірте версію за допомогою java-версія і переконайтеся, що JAVA_HOME експортовано.
  • Працюючий кластер Hadoop. Як NameNode, так і DataNode повинні бути активними. Запустіть японська мова і переконайтеся, що NameNode, DataNode, ResourceManager та NodeManager відображаються у списку.
  • Доступ для запису в HDFS. Обліковий запис, який запускає Hive, потребує дозволу на створення каталогів у HDFS.
  • Відповідні версії. Hive 4.2.0 побудовано на базі Hadoop 3.4.1 та Tez 0.10.5. Життєвий цикл лінійки Hive 3.x завершився у жовтні 2024 року, тому нова інсталяція має бути спрямована на лінійку 4.x.
  • Безкоштовні ресурси. Одновузлова навчальна система комфортно підходить приблизно з 4 ГБ оперативної пам'яті та 20 ГБ вільного місця на диску.

Якщо ці пункти поставлені, послідовність завантаження та розпакування, наведена нижче, пройде без несподіванок.

Як встановити Hive на Ubuntu

Нижче наведено крок за кроком процес встановлення Hive Ubuntu:

Крок 1) Завантажте та встановіть Hive на Ubuntu

Щоб завантажити стабільну версію Hive, зверніться до Apache URL як зазначено нижче.

https://www.apache.org/dyn/closer.cgi/hive/ — йти до URL і виберіть посилання для завантаження дзеркала Apache. Сторінка завантажень Apache Hive перелічує, які випуски відповідають певній версії Hadoop.

Відкриється сторінка дзеркала зі списком доступних каталогів випусків Hive, як показано нижче.

Дзеркальна сторінка Apache зі списком доступних каталогів випусків Apache Hive

Виберіть останню версію налаштування Hive. (У моєму випадку це hive – 3.1.2.) У папці релізу поруч перелічені бінарні та вихідні архіви.

Папка випуску Hive з архівами бінарних файлів та дистрибутивів вихідного коду

Натисніть на файл bin, і завантаження розпочнеться.

Запит на завантаження файлу дистрибутива apache-hive bin tar.gz у браузері

Крок 2) Прикладtract файл tar

Перейдіть до місця завантаження tar-файлу, а потім extract файл tar за допомогою наступної команди для встановлення Hive на Ubuntu на вашу систему.

tar -xvf  apache-hive-3.1.2-bin.tar.gz

Термінал відтворює кожен файл під час розпакування в новий каталог Hive.

Вивід терміналу під час роботи з tar-архівом HivetracТед на Ubuntu

Крок 3) Розмістіть різні властивості конфігурації в Apache Hive

На цьому кроці ми зробимо дві речі:

  1. Розміщення домашнього шляху Hive у файлі bashrc
  2. Розміщення домашнього шляху Hadoop у hive-config.sh

1) Згадайте шлях до Hive у ~/.bashrc

Відкрийте файл для редагування за допомогою команди, показаної нижче.

Команда, яка відкриває файл bashrc для редагування змінних середовища Hive

  • Відкрийте файл bashrc, як показано на скріншоті вище
  • Згадайте домашній шлях Hive, тобто шлях HIVE_HOME, у файлі bashrc та експортуйте його, як показано нижче.

Рядки експорту HIVE_HOME та PATH додано в кінець файлу bashrc

Code для розміщення в bashrc:

export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin"
export PATH=$PATH:$HIVE_HOME/bin

Перезавантажте файл за допомогою джерело ~ / .bashrc тож новий шлях набуде чинності в поточному сеансі терміналу.

2) Експорт шляху Hadoop у hive-config.sh

Для зв'язку з екосистемою Hadoop ми визначаємо домашній шлях Hadoop у конфігураційному файлі Hive. Відкрийте hive-config.sh, як показано нижче.

Команда, що використовується для відкриття hive-config.sh з каталогу Hive bin

Згадайте шлях HADOOP_HOME у файлі hive-config.sh, як показано нижче.

Шлях HADOOP_HOME, оголошений у файлі hive-config.sh

Крок 4) Створіть каталоги Hive у Hadoop

Для зв'язку з Hadoop нам потрібно створити каталоги в Hadoop, як показано нижче. Hive записує дані керованих таблиць у каталог сховища даних, а вивід проміжних даних – у каталог tmp.

Команди HDFS, що створюють каталоги Hive tmp та warehouse

Надання root-дозволів для створення папок Hive в Hadoop. Якщо не виникає жодних повідомлень про помилку, це означає, що Hadoop успішно надав дозволи для папок Hive.

Термінал, що показує групові дозволи на запис, надані папкам Hive на HDFS

Крок 5) Увійдіть в оболонку Hive

Потрапте в оболонку вулика, ввівши '. /вулик' команду, як показано нижче.

Запит оболонки Hive відкрито з каталогу Hive bin Ubuntu

Як ініціалізувати схему метасховища Hive

Hive зберігає кожне ім'я таблиці, ім'я стовпця та тип даних у реляційному сховищі, яке називається метасховищем. Після нової інсталяції це сховище порожнє, і починаючи з Hive 3.x і далі оболонка відмовляється запускатися, доки не з'являться таблиці схеми. Утиліта schematool, яка постачається в каталозі Hive bin, створює їх.

Для навчання з одним користувачем достатньо бази даних Derby, що входить до комплекту:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Команда виводить створену нею версію схеми та закінчується на schemaTool завершеноDerby записує свої файли в той каталог, з якого було виконано команду, тому завжди запускайте Hive з того ж каталогу після цього.

Дербі приймає лише один активний сеанс одночасно, що робить його непридатним для спільного кластера. Вкажіть кущ у MySQL замість цього, додавши властивості підключення до hive-site.xml та повторно запустивши інструмент з іншим типом бази даних:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

Повний список властивостей та розміщення водіїв описано в посібнику про те, як налаштувати сховище метасховища Hive за допомогою MySQLВарто запам'ятати ще два прапори:

  • -інфо повідомляє версію схеми, записану на даний момент у сховищі метапосилань, без жодних змін.
  • -схема_оновлення переносить існуюче сховище метафайлів до версії схеми щойно встановленого випуску Hive.

Після налаштування схеми оболонка готова прийняти свій перший оператор HiveQL.

Команди оболонки Hive

Тут ми створимо зразок таблиці за допомогою команди оболонки Hive «create» з іменами стовпців.

Приклад коду для створення бази даних у Hive. На скріншоті нижче показано оператор create та вивід describe один за одним.

Вивід оболонки Hive для команд створення таблиці та опису продукту

З наведеного вище скріншоту ми можемо спостерігати наступне:

1) Створення зразка таблиці з іменами стовпців у Hive

  • Тут назва таблиці «продукт» із трьома назвами стовпців продукт, назва та ціна
  • Назви трьох стовпців позначені відповідним типом даних
  • Усі поля завершуються комою ', '

2) Відображення інформації про таблицю Hive

  • За допомогою команди «describe» ми можемо побачити інформацію про таблицю, присутню в Hive.
  • Тут відображаються назви стовпців з відповідними типами даних, присутніми у схемі таблиці.
  • В кінці буде відображено час, витрачений на виконання цієї команди, та кількість отриманих рядків.

Приклад коду для створення бази даних у Вулик (для самоперевірки)

1) Створити таблицю product(product int, pname string, price float)

Row format delimited
Fields terminated by ',';

2) описати продукт;

Щойно таблиця відповідає на запит description, оболонка, сховище метасховища та HDFS з'єднуються між собою. Звідси той самий сеанс приймає ширший створювати, змінювати та видаляти таблицю заяви та упорядкувати за, групувати за та кластеризувати за запити.

Поширені помилки встановлення Hive на Ubuntu і як їх виправити

Більшість збоїв першого запуску виникають через середовище навколо Hive, а не через сам Hive. У таблиці нижче зіставлено повідомлення, які з'являються найчастіше, з їхньою причиною та командою, яка їх очищує.

Повідомлення на екрані Ймовірна причина виправляти
hive: команда не знайдена HIVE_HOME/bin не знаходиться на шляху PATH Перевірте рядки експорту в bashrc, а потім запустіть джерело ~ / .bashrc
Інформацію про версію не знайдено в метасховищі Схема метасховища ніколи не була ініціалізована Запустіть schematool з параметром -initSchema для вибраного типу бази даних
Виклик до localhost:9000 не вдався через виняток з'єднання HDFS не працює Запустіть демони Hadoop та переконайтеся, що NameNode та DataNode з'являються в японська мова
Вузол імені знаходиться в безпечному режимі NameNode все ще перебуває в безпечному режимі запуску Вийдіть з безпечного режиму за допомогою hdfs dfsadmin - вийти з безпечного режиму
Доступ заборонено: access=WRITE on /user/hive/warehouse Каталогу сховища бракує групового дозволу на запис Повторно подайте заявку hdfs dfs -chmod g+w у каталогах warehouse та tmp
NoSuchMethodError для Preconditions.checkArgument Hive та Hadoop постачають різні версії Guava Jar. Видаліть старий JAR-файл Guava з каталогу Hive lib та скопіюйте на його місце файл Hadoop.

Швидкий спосіб відокремити проблему Hive від проблеми Hadoop – це запустити японська мова по-перше. Якщо демони відсутні, проблема в кластері; якщо вони присутні, а оболонка все одно не працює, проблема в конфігурації Hive або схемі метасховища. Після того, як оболонка стабільна, Оператори HiveQL та вбудовані функції посилання – це природний наступний пункт.

Поширені запитання

Керована таблиця дозволяє Hive володіти як метаданими, так і файлами, тому видаляйтеping це видаляє дані в каталозі сховища. Зовнішня таблиця записує лише метадані та видаляєping це залишає базові файли недоторканими.

Hive працює будь-де, де працюють JVM та Hadoop, але скрипти оболонки передбачають макет Unix. Windows більшість команд використовують WSL2 або образ Docker; на macOS Той самий tar-архів працює після експорту JAVA_HOME та HADOOP_HOME.

Beeline — це JDBC-клієнт, який підключається до HiveServer2, а не завантажує Hive всередині процесу оболонки. Він підтримує одночасну роботу користувачів та автентифікацію, а старий інтерфейс командного рядка Hive застарів, тому нові інсталяції повинні бути стандартизовані для Beeline.

Сучасні рушії на основі історичної статистики запитів формують моделі вивчених витрат, які прогнозують розміри сканування, скорочення розділів та порядок об'єднання. Постачальники хмарних послуг надають ті ж сигнали як автоматичні рекомендації щодо стиснення файлів, компонування розділів та розміру контейнера.

Copilot швидко створює чернетки експортів bashrc, блоків hive-site.xml та викликів schematool, а агентські виконавці можуть виконувати їх у «пісочниці». Розглядайте вивід як перший чернетку: номери версій, порти та шляхи до каталогів все ще потребують перевірки на вашому власному кластері.

Приблизно 4 ГБ оперативної пам'яті та 20 ГБ вільного дискового простору комфортно для навчання, оскільки сам Hive є тонким клієнтом. Розмір виробничих вузлів залежить від кластера Hadoop та бази даних метасховища, а не від Hive.

Розпакуйте новий реліз поруч зі старим, перенаправте HIVE_HOME, потім запустіть schematool з -upgradeSchema, щоб метасховище збігалося. Видалення — це просто видалення каталогу Hive та його очищення.ping рядки експорту з bashrc; дані сховища HDFS збереглися.

Ні. MapReduce застарів як механізм виконання Hive, а Hive 4.x за замовчуванням працює на Apache Tez. MapReduce Модель все ще варта розуміння, оскільки Tez дотримується тієї ж моделі спрямованого виконання завдань.

Підсумуйте цей пост за допомогою: