Как да инсталирате 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 създава таблиците на metastore, а Hive 3.x и по-нови версии отказват да стартират срещу неинициализирана схема.
  • 🔨 Проверете бързо: Изразът create, последван от describe, доказва, че shell-ът, metastore-ът и HDFS-ът са правилно свързани.

Как да инсталирате Hive на Ubuntu

Преди инсталирането на Apache Hive се нуждаем от специален Hadoop инсталация, готова и работеща с всички демони на Hadoop.

За инсталиране на Hadoop проверете това връзка.

След като всички демони на Hadoop работят добре, просто започнете инсталирането на Hive частта. Ръководството по-долу преминава през четири етапа:

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

  1. Предварителни изисквания и съвместимост на версиите
  2. Инсталиране на Hive
  3. Инициализация на схемата на Metastore
  4. Команди на Hive shell

Предварителни изисквания за инсталиране на Apache Hive на Ubuntu

Hive не е самостоятелна база данни. Това е слой за заявки, който преобразува HiveQL в задачи, изпълнявани на съществуващ клъстер, така че почти всяка неуспешна инсталация tracвръща се към липсващо предварително условие, а не към самия Hive. Проверете следното, преди да изтеглите каквото и да било:

  • Поддържан JDK. Hive 4.1.x работи на JDK 17, докато Hive 4.2.x повишава минималната версия до JDK 21. Проверете версията с java -version и се уверете, че 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 GB RAM и 20 GB свободен диск.

С отметнати квадратчета, последователността на изтегляне и разархивиране по-долу протича без изненади.

Как да инсталирате Hive на Ubuntu

По-долу е даден процес стъпка по стъпка за това как да инсталирате Hive в Ubuntu:

Стъпка 1) Изтеглете и инсталирайте Hive on 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 архивът на Hive е разархивиранtracТед на 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 записва управлявани таблични данни в директорията на хранилището, а изхода за етапинг (staging) се съхранява в директорията tmp.

HDFS команди, които създават директориите Hive tmp и warehouse

Предоставяне на root права за създаване на Hive папки в Hadoop. Ако не се появи съобщение за грешка, това означава, че Hadoop успешно е предоставил разрешения за Hive папките.

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

Стъпка 5) Влезте в обвивката на кошера

Влезте в обвивката на кошера, като въведете '. /кошер' командата, както е показано по-долу.

Подканата на Hive shell е отворена от директорията Hive bin на Ubuntu

Как да инициализирате схемата на Hive Metastore

Hive съхранява всяко име на таблица, име на колона и тип данни в релационно хранилище, наречено metastore. При нова инсталация това хранилище е празно и от Hive 3.x нататък shell-ът отказва да се стартира, докато таблиците на схемата не съществуват. Помощната програма schematool, която се доставя в директорията bin на Hive, ги създава.

За обучение с един потребител, включената в пакета база данни Derby е достатъчна:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Командата отпечатва създадената от нея версия на схемата и завършва с schemaTool е завършенDerby записва файловете си в директорията, от която е изпълнена командата, така че винаги стартирайте Hive от същата директория след това.

Дерби приема само една активна сесия в даден момент, което го прави неподходящ за споделен клъстер. Насочете кошера към MySQL вместо това, като добавите свойствата на връзката към hive-site.xml и стартирате отново инструмента с различен тип база данни:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

Пълният списък с имоти и разположението на драйверите са разгледани в ръководството за това как да конфигурирайте метахранилището на Hive с MySQLСтрува си да се запомнят още два знамена:

  • -инфо докладва версията на схемата, записана в момента в метахранилището, без да променя нищо.
  • -upgradeSchema мигрира съществуващ метахранилище към версията на схемата на новоинсталираната версия на Hive.

След като схемата е налице, обвивката е готова да приеме първия си HiveQL оператор.

Команди на Hive shell

Тук ще създадем примерна таблица, използвайки командата „create“ на обвивката на Hive с имена на колони.

Примерен код за създаване на база данни в Hive. Екранната снимка по-долу показва изхода на командата create и командата describe един след друг.

Изход на Hive shell за командите create table и describe product

От горната екранна снимка можем да наблюдаваме следното:

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

  • Тук името на таблицата е „продукт“ с три имена на колони продукт, име и цена
  • Имената на трите колони са обозначени със съответния им тип данни
  • Всички полета се завършват със запетая ', '

2) Показване на информация за таблицата Hive

  • С помощта на командата „describe“ можем да видим информацията за таблицата, налична в Hive.
  • Тук се показват имената на колоните със съответните им типове данни, присъстващи в схемата на таблицата.
  • Накрая ще се покаже времето, необходимо за изпълнение на тази команда, и броят на извлечените редове.

Примерен код за създаване на база данни в Кошер (за самостоятелна проверка)

1) Създаване на таблица product(product int, pname string, price float)

Row format delimited
Fields terminated by ',';

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

След като таблицата отговори на задачата за описание, обвивката, метахранилището и HDFS се свързват. Оттук нататък същата сесия приема по-широкия създаване, промяна и премахване на таблица изявления и подреждане по, групиране по и клъстериране по запитвания.

Често срещани грешки при инсталиране на Hive Ubuntu и как да ги поправим

Повечето грешки при първо стартиране идват от средата около Hive, а не от самия Hive. Таблицата по-долу съпоставя съобщенията, които се появяват най-често, с причината за тях и командата, която ги изчиства.

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

Бърз начин за разграничаване на проблем с Hive от проблем с Hadoop е да се изпълни японска версия първо. Ако демоните липсват, проблемът е в клъстера; ако те са налични и обвивката все още се проваля, проблемът е в конфигурацията на Hive или схемата на метастора. След като обвивката е стабилна, HiveQL оператори и вградени функции препратката е естествената следваща спирка.

Въпроси и Отговори

Управляваната таблица позволява на Hive да притежава както метаданните, така и файловете, така че премахнетеping изтрива данните в директорията на хранилището. Външна таблица записва само метаданните и премахваping оставя основните файлове недокоснати.

Hive работи навсякъде, където работят JVM и Hadoop, но shell скриптовете приемат Unix оформление. Windows повечето екипи използват WSL2 или Docker образ; на macOS Същият tar архив работи след експортиране на JAVA_HOME и HADOOP_HOME.

Beeline е JDBC клиент, който се свързва с HiveServer2, вместо да зарежда Hive вътре в процеса на shell. Той поддържа едновременни потребители и удостоверяване, а по-старият Hive CLI е остарял, така че новите инсталации трябва да се стандартизират за Beeline.

Съвременните двигатели въвеждат исторически статистически данни за заявките в модели на научени разходи, които предвиждат размери на сканиране, подрязване на дялове и ред на присъединяване. Доставчиците на облачни услуги предоставят същите сигнали като автоматични препоръки за компресиране на файлове, оформление на дялове и оразмеряване на контейнери.

Copilot бързо създава експортирания bashrc, блоковете hive-site.xml и извикванията на schematool, а агентските изпълнители могат да ги изпълняват в пясъчник. Третирайте резултата като първа чернова: номерата на версиите, портовете и пътищата на директориите все още се нуждаят от проверка спрямо вашия собствен клъстер.

Приблизително 4 GB RAM и 20 GB свободно дисково пространство са удобни за обучение, тъй като самият Hive е тънък клиент. Производствените възли се оразмеряват около клъстера Hadoop и базата данни metastore, а не около Hive.

Разопаковайте новата версия до старата, пренасочете HIVE_HOME, след което стартирайте schematool с -upgradeSchema, така че metastore-ът да съвпада. Премахването е просто изтриване на директорията Hive и премахване наping експортните линии от bashrc; данните от хранилището на HDFS са запазени.

Не. MapReduce е остарял като механизъм за изпълнение на Hive и Hive 4.x работи по подразбиране на Apache Tez. MapReduce Моделът все още си струва да се разбере, защото Tez следва същия модел на насочена работа.

Обобщете тази публикация с: