Sådan installeres HIVE på Ubuntu (Download og opsætningsvejledning)

⚡ Smart opsummering

Apache Hive installeres på Ubuntu som et tyndt datawarehouse-lag oven på en allerede kørende Hadoop-klynge, så opsætningen handler hovedsageligt om at udpakke ét arkiv og pege tre miljøvariabler mod de rigtige mapper.

  • 🧱 Hadoop først: Hver Hadoop-daemon skal allerede køre, fordi Hive gemmer sine tabeldata på HDFS og sender sine job til klyngen.
  • ⬇️ Download kilde: Binære udgivelser kommer fra Apache-spejlsiden, og 3.x-linjen nåede slutningen af ​​sin levetid i oktober 2024.
  • 📁 To konfigurationsfiler: HIVE_HOME hører hjemme i bashrc, og HADOOP_HOME hører hjemme i hive-config.sh i Hive bin-mappen.
  • 💾 HDFS-mapper: Warehouse- og tmp-mapperne skal findes på HDFS med gruppeskrivningstilladelse, før den første tabel oprettes.
  • 🧩 Skema trin: Hjælpeprogrammet schematool opretter metastore-tabellerne, og Hive 3.x og senere nægter at starte mod et ikke-initialiseret skema.
  • 🔨 Bekræft hurtigt: En create-sætning efterfulgt af describe beviser, at shell, metastor og HDFS alle er forbundet korrekt.

Sådan installeres Hive Ubuntu

Før installation af Apache Hive kræver vi en dedikeret Hadoop installation, op og kører med alle Hadoop-dæmonerne.

For installation af Hadoop, tjek dette link.

Når alle Hadoop-dæmonerne fungerer fint, skal du blot starte installationen af ​​Hive-delen. Gennemgangen nedenfor gennemgår fire faser:

Apache Hive installationsproces

  1. Forudsætninger og versionskompatibilitet
  2. Installation af Hive
  3. Metastore-skemainitialisering
  4. Hive shell kommandoer

Forudsætninger for installation af Apache Hive Ubuntu

Hive er ikke en selvstændig database. Det er et forespørgselslag, der oversætter HiveQL til job, der kører på en eksisterende klynge, så næsten alle mislykkede installationer tracvender tilbage til en manglende forudsætning i stedet for at bruge Hive selv. Bekræft følgende, før du downloader noget:

  • En understøttet JDK. Hive 4.1.x kører på JDK 17, mens Hive 4.2.x hæver minimumskravet til JDK 21. Tjek versionen med java-version og sørg for at JAVA_HOME eksporteres.
  • En kørende Hadoop-klynge. Både NameNode og DataNode skal være aktive. Kør JPS og bekræft, at NameNode, DataNode, ResourceManager og NodeManager alle vises på listen.
  • Skriveadgang til HDFS. Den konto, der starter Hive, skal have tilladelse til at oprette mapper under HDFS.
  • Matchende versioner. Hive 4.2.0 er bygget mod Hadoop 3.4.1 og Tez 0.10.5. Hive 3.x-linjen nåede slutningen af ​​sin levetid i oktober 2024, så en ny installation bør være rettet mod 4.x-linjen.
  • Gratis ressourcer. En læringsopsætning med én node er komfortabel med cirka 4 GB RAM og 20 GB ledig diskplads.

Med disse felter markeret, forløber download- og udpakningssekvensen nedenfor uden overraskelser.

Sådan installeres Hive på Ubuntu

Nedenfor er en trin for trin proces om, hvordan du installerer Hive in Ubuntu:

Trin 1) Download og installer Hive på Ubuntu

For at downloade den stabile Hive-opsætning, se Apache URL som nævnt nedenfor.

https://www.apache.org/dyn/closer.cgi/hive/ — gå til URL og vælg downloadlinket til Apache-spejlet. Apache Hive downloadside viser hvilke udgivelser der parres med hvilken Hadoop-version.

Spejlsiden åbnes med en liste over tilgængelige Hive-udgivelsesmapper, som vist nedenfor.

Apache-spejlside med en liste over tilgængelige Apache Hive-udgivelsesmapper

Vælg den seneste version af Hive-opsætningen. (I mit nuværende tilfælde er det hive – 3.1.2.) Udgivelsesmappen viser binær- og kildearkiverne side om side.

Hive-udgivelsesmappe, der viser arkiverne for binær- og kildekodedistribution

Klik på bin-filen, og downloadingen starter.

Browser download prompt for apache-hive bin tar.gz distributionsfilen

Trin 2) F.eks.tract tar-filen

Gå til den downloadede tar-filplacering, og derefter f.eks.tracUdfør tar-filen ved at bruge følgende kommando til at installere Hive på Ubuntu på dit system.

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

Terminalen gentager hver fil, når den pakkes ud i den nye Hive-mappe.

Terminaloutput, mens Hive tar-arkivet er aktivttracted på Ubuntu

Trin 3) Placer forskellige konfigurationsegenskaber i Apache Hive

I dette trin skal vi gøre to ting:

  1. Placering af Hive-startstien i bashrc-filen
  2. Placering af Hadoop-hjemmestiens placering i hive-config.sh

1) Nævn Hive-stien i ~/.bashrc

Åbn filen til redigering med kommandoen vist nedenfor.

Kommando, der åbner bashrc-filen til redigering af Hive-miljøvariablerne

  • Åbn bashrc-filen som vist på skærmbilledet ovenfor
  • Angiv Hive-startstien, dvs. HIVE_HOME-stien, i bashrc-filen og eksporter den som vist nedenfor.

HIVE_HOME- og PATH-eksportlinjer tilføjet i slutningen af ​​bashrc-filen

Code skal placeres i bashrc:

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

Genindlæs filen med kilde ~ / .bashrc så den nye sti træder i kraft i den nuværende terminalsession.

2) Eksport af Hadoop-stien i hive-config.sh

For at kommunikere med Hadoop-økosystemet definerer vi Hadoop-startstien i Hive-konfigurationsfilen. Åbn hive-config.sh som vist nedenfor.

Kommando brugt til at åbne hive-config.sh fra Hive bin-mappen

Angiv HADOOP_HOME-stien i hive-config.sh-filen som vist nedenfor.

HADOOP_HOME-stien erklæret i hive-config.sh-filen

Trin 4) Opret Hive-mapper i Hadoop

For at kommunikere med Hadoop skal vi oprette mapper i Hadoop som vist nedenfor. Hive skriver administrerede tabeldata til warehouse-mappen og staging-output til tmp-mappen.

HDFS-kommandoer, der opretter Hive tmp- og warehouse-mapperne

Giver root-tilladelser til at oprette Hive-mapper i Hadoop. Hvis der ikke vises nogen fejlmeddelelse, betyder det, at Hadoop har givet tilladelser til Hive-mapperne.

Terminalen viser gruppeskrivetilladelser givet til Hive-mapperne på HDFS

Trin 5) Gå ind i Hive-skallen

Kom ind i Hive-skallen ved at indtaste '. /hive' kommando som vist nedenfor.

Hive shell-prompt åbnet fra Hive bin-mappen den Ubuntu

Sådan initialiserer du Hive-metastore-skemaet

Hive gemmer alle tabelnavne, kolonnenavne og datatyper i et relationslager kaldet metastore. Ved en frisk installation er dette lager tomt, og fra Hive 3.x og fremefter nægter shell'en at starte, før skematabellerne findes. Schematool-værktøjet, der følger med i Hive bin-mappen, opretter dem.

For en enkeltbruger-læringsopsætning er den medfølgende Derby-database tilstrækkelig:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Kommandoen udskriver den oprettede skemaversion og slutter med skemaværktøjet er færdigtDerby skriver sine filer til den mappe, som kommandoen blev kørt fra, så start altid Hive fra den samme mappe bagefter.

Derby accepterer kun én aktiv session ad gangen, hvilket gør det uegnet til en delt klynge. Point Hive på MySQL i stedet ved at tilføje forbindelsesegenskaberne til hive-site.xml og køre værktøjet igen med en anden databasetype:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

Den fulde liste over egenskaber og placering af drivere er dækket i vejledningen om, hvordan man konfigurer Hive-metastoren med MySQLTo flag mere er værd at huske:

  • - info rapporterer den skemaversion, der aktuelt er registreret i metastoren, uden at ændre noget.
  • -opgraderingsskema migrerer en eksisterende metastore til skemaversionen af ​​den nyinstallerede Hive-udgivelse.

Med skemaet på plads er skallen klar til at acceptere sin første HiveQL-sætning.

Hive shell kommandoer

Her skal vi oprette en eksempeltabel ved hjælp af Hive-shell-kommandoen "create" med kolonnenavne.

Eksempelkode til oprettelse af en database i Hive. Skærmbilledet nedenfor viser create-sætningen og describe-outputtet efter hinanden.

Hive-shell-output til oprettelsestabellen og beskrivelse af produktkommandoer

Fra ovenstående skærmbillede kan vi observere følgende:

1) Oprettelse af en eksempeltabel med kolonnenavne i Hive

  • Her er tabelnavnet "produkt" med tre kolonnenavne produkt, navn og pris
  • De tre kolonnenavne er angivet med deres respektive datatype
  • Alle felter afsluttes med et komma ', '

2) Visning af Hive-tabeloplysninger

  • Ved at bruge kommandoen "beskriv" kan vi se tabeloplysningerne i Hive.
  • Her vises kolonnenavne med deres respektive datatyper, der er til stede i tabelskemaet.
  • Til sidst vil den vise den tid, det tog at udføre denne kommando, og antallet af rækker, den hentede

Eksempelkode til oprettelse af en database i Hive (til selvtjek)

1) Opret tabel product(product int, pname string, price float)

Row format delimited
Fields terminated by ',';

2) beskriv produktet;

Når tabellen svarer på en beskrivelse, forbindes skallen, metastoren og HDFS. Herfra accepterer den samme session den bredere version. oprette, ændre og slette tabel udtalelser og sorter efter, grupper efter og klyng efter forespørgsler.

Almindelige Hive-installationsfejl på Ubuntu og hvordan man fikser dem

De fleste fejl i første kørsel kommer fra miljøet omkring Hive snarere end fra Hive selv. Tabellen nedenfor viser de meddelelser, der vises oftest, årsagen til dem, og den kommando, der fjerner dem.

Besked på skærmen Sandsynlig årsag Fix
hive: kommando ikke fundet HIVE_HOME/bin er ikke på PATH Tjek eksportlinjerne i bashrc igen, og kør derefter kilde ~ / .bashrc
Versionsoplysninger blev ikke fundet i metastore Metastore-skemaet blev aldrig initialiseret Kør schematool med -initSchema for den valgte databasetype
Opkald til localhost:9000 mislykkedes på grund af forbindelsesundtagelse HDFS kører ikke Start Hadoop-dæmonerne og bekræft, at NameNode og DataNode vises i JPS
Navnenoden er i sikker tilstand NameNode er stadig i sikker opstartstilstand Forlad sikker tilstand med hdfs dfsadmin -safemode forlad
Tilladelse nægtet: adgang=SKRIV på /bruger/hive/lager Lagermappen mangler skrivetilladelse til gruppe Ansøg igen hdfs dfs -chmod g+w på warehouse- og tmp-mapperne
NoSuchMethodError på Preconditions.checkArgument Hive og Hadoop leverer forskellige Guava-krukkeversioner Slet den ældre Guava-jar i Hive lib-mappen, og kopier Hadoop-jar'en i stedet.

En hurtig måde at adskille et Hive-problem fra et Hadoop-problem er at køre JPS først. Hvis dæmonerne mangler, er klyngen fejlen; hvis de er til stede, og skallen stadig fejler, ligger fejlen i Hive-konfigurationen eller metastore-skemaet. Når skallen er stabil, HiveQL-operatorer og indbyggede funktioner Reference er det naturlige næste stop.

Ofte Stillede Spørgsmål

En administreret tabel lader Hive eje både metadataene og filerne, så drop demping den sletter dataene i lagermappen. En ekstern tabel registrerer kun metadataene og slipperping det lader de underliggende filer være uberørte.

Hive kører overalt, hvor en JVM og Hadoop kører, men shell-scripts antager et Unix-layout. Windows de fleste teams bruger WSL2 eller et Docker-billede; macOS Det samme tar-arkiv fungerer, når JAVA_HOME og HADOOP_HOME er eksporteret.

Beeline er en JDBC-klient, der opretter forbindelse til HiveServer2 i stedet for at indlæse Hive inde i shell-processen. Den understøtter samtidige brugere og godkendelse, og den ældre Hive CLI er udfaset, så nye installationer bør standardiseres på Beeline.

Moderne søgemaskiner bruger historisk forespørgselsstatistik til lærte omkostningsmodeller, der forudsiger scanningsstørrelser, partitionsbeskæring og join-rækkefølge. Cloud-leverandører eksponerer de samme signaler som automatiske anbefalinger til filkomprimering, partitionslayout og containerstørrelser.

Copilot laver hurtigt udkast til bashrc-eksporter, hive-site.xml-blokke og schematool-kald, og agent-runners kan udføre dem i en sandkasse. Behandl outputtet som et første udkast: versionsnumre, porte og mappestier skal stadig verificeres mod din egen klynge.

Omkring 4 GB RAM og 20 GB ledig diskplads er behageligt at lære med, da Hive i sig selv er en tynd klient. Produktionsnoder er dimensioneret omkring Hadoop-klyngen og metastore-databasen i stedet for omkring Hive.

Udpak den nye udgivelse ved siden af ​​den gamle, ompoint HIVE_HOME, og kør derefter schematool med -upgradeSchema, så metastoren matcher. Fjernelse er blot at slette Hive-mappen og strippenping eksportlinjerne fra bashrc; HDFS-lagerdataene overlever.

Nej. MapReduce er udfaset som en Hive-udførelsesmotor, og Hive 4.x kører som standard på Apache Tez. KortReducer Modellen er stadig værd at forstå, fordi Tez følger den samme model for målrettet job.

Opsummer dette indlæg med: