Hur man installerar HIVE på Ubuntu (Ladda ner och installationsguide)

⚡ Smart sammanfattning

Apache Hive installeras på Ubuntu som ett tunt datalagerlager ovanför ett redan körande Hadoop-kluster, så installationen handlar mest om att packa upp ett arkiv och peka tre miljövariabler mot rätt kataloger.

  • 🧱 Hadoop först: Varje Hadoop-daemon måste redan köras, eftersom Hive lagrar sina tabelldata på HDFS och skickar sina jobb till klustret.
  • ⬇️ Ladda ner källa: Binära versioner kommer från Apaches mirror-sida, och 3.x-linjen nådde slutet av sin livscykel i oktober 2024.
  • 📁 Två konfigurationsfiler: HIVE_HOME hör hemma i bashrc, och HADOOP_HOME hör hemma i hive-config.sh i Hive bin-katalogen.
  • 💾 HDFS-mappar: Warehouse- och tmp-katalogerna måste finnas på HDFS med gruppskrivningsbehörighet innan den första tabellen skapas.
  • 🧩 Schemasteg: Verktyget schematool skapar metastore-tabellerna, och Hive 3.x och senare vägrar att starta mot ett oinitierat schema.
  • 🔨 Verifiera snabbt: En create-sats följt av describe bevisar att skalet, metaarkivet och HDFS är korrekt sammankopplade.

Hur man installerar Hive på Ubuntu

Innan installationen av Apache Hive behöver vi en dedikerad Hadoop installation, igång med alla Hadoop-demoner.

För installation av Hadoop, kontrollera detta länk.

När alla Hadoop-daemoner fungerar som de ska, börja bara installationen av Hive-delen. Genomgången nedan går igenom fyra steg:

Apache Hive installationsprocess

  1. Förutsättningar och versionskompatibilitet
  2. Installation av Hive
  3. Metastore-schemainitiering
  4. Hive-skalkommandon

Förutsättningar för att installera Apache Hive på Ubuntu

Hive är inte en fristående databas. Det är ett frågelager som översätter HiveQL till jobb som körs på ett befintligt kluster, så nästan varje misslyckad installation tracgår tillbaka till en saknad förutsättning snarare än till Hive självt. Bekräfta följande innan du laddar ner något:

  • En JDK som stöds. Hive 4.1.x körs på JDK 17, medan Hive 4.2.x höjer minimum till JDK 21. Kontrollera versionen med java -version och se till att JAVA_HOME exporteras.
  • Ett körande Hadoop-kluster. Både NameNode och DataNode måste vara aktiva. Kör JPS och bekräfta att NameNode, DataNode, ResourceManager och NodeManager alla visas i listan.
  • Skrivåtkomst till HDFS. Kontot som startar Hive behöver behörighet att skapa kataloger under HDFS.
  • Matchande versioner. Hive 4.2.0 är byggd mot Hadoop 3.4.1 och Tez 0.10.5. Hive 3.x-serien nådde slutet av sin livscykel i oktober 2024, så en ny installation bör rikta in sig på 4.x-serien.
  • Gratis resurser. En inlärningskonfiguration med en enda nod är bekväm med ungefär 4 GB RAM och 20 GB ledig disk.

Med dessa rutor markerade löper nedladdnings- och uppackningssekvensen nedan utan överraskningar.

Hur man installerar Hive på Ubuntu

Nedan följer en steg-för-steg-process om hur du installerar Hive in Ubuntu:

Steg 1) Ladda ner och installera Hive på Ubuntu

För att ladda ner den stabila Hive-installationen, se Apache URL som nämns nedan.

https://www.apache.org/dyn/closer.cgi/hive/ — gå till URL och välj nedladdningslänken för Apache-spegeln. Apache Hive nedladdningssida listar vilka utgåvor som parar ihop med vilken Hadoop-version.

Spegelsidan öppnas med en lista över tillgängliga Hive-versionskataloger, som visas nedan.

Apache-spegelsida som listar tillgängliga Apache Hive-utgåvekataloger

Välj den senaste versionen av Hive-installationen. (I mitt nuvarande fall är det Hive – 3.1.2.) I versionsmappen listas binär- och källkodsarkiven sida vid sida.

Hive-utgåva som visar arkiven för binär- och källkodsdistribution

Klicka på bin-filen så startar nedladdningen.

Webbläsarens nedladdningsfråga för distributionsfilen tar.gz för apache-hive bin

Steg 2) Exempeltract tar-filen

Gå till den nedladdade tar-filens plats, t.ex.tracInstallera Hive på tar-filen med följande kommando Ubuntu på ditt system.

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

Terminalen ekar varje fil när den packas upp i den nya Hive-katalogen.

Terminalutdata medan Hive tar-arkivet är aktivttracted på Ubuntu

Steg 3) Placera olika konfigurationsegenskaper i Apache Hive

I det här steget ska vi göra två saker:

  1. Placera Hive-hemsökvägen i bashrc-filen
  2. Placera Hadoops hemsökväg i hive-config.sh

1) Nämn Hive-sökvägen i ~/.bashrc

Öppna filen för redigering med kommandot som visas nedan.

Kommando som öppnar bashrc-filen för att redigera Hive-miljövariablerna

  • Öppna bashrc-filen som visas på skärmdumpen ovan
  • Ange Hive-hemsökvägen, dvs. HIVE_HOME-sökvägen, i bashrc-filen och exportera den enligt nedan.

Exportrader för HIVE_HOME och PATH har lagts till i slutet av bashrc-filen.

Code att placeras i bashrc:

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

Ladda om filen med källa ~ / .bashrc så den nya sökvägen träder i kraft i den aktuella terminalsessionen.

2) Exportera Hadoop-sökvägen i hive-config.sh

För att kommunicera med Hadoop-ekosystemet definierar vi Hadoops hemsökväg i Hive-konfigurationsfilen. Öppna hive-config.sh enligt nedan.

Kommando som används för att öppna hive-config.sh från Hive bin-katalogen

Ange sökvägen till HADOOP_HOME i filen hive-config.sh som visas nedan.

HADOOP_HOME-sökvägen deklarerad i hive-config.sh-filen

Steg 4) Skapa Hive-kataloger i Hadoop

För att kommunicera med Hadoop behöver vi skapa kataloger i Hadoop enligt nedan. Hive skriver hanterade tabelldata till warehouse-katalogen och staging-utdata till tmp-katalogen.

HDFS-kommandon som skapar Hive tmp- och warehouse-katalogerna

Ger root-behörighet att skapa Hive-mappar i Hadoop. Om det inte ger något felmeddelande betyder det att Hadoop har gett behörigheter till Hive-mapparna.

Terminal som visar gruppskrivbehörigheter som beviljats ​​Hive-mapparna på HDFS

Steg 5) Gå in i Hive-skalet

Gå in i Hive-skalet genom att ange '. /bikupa' kommando som visas nedan.

Hive-shellprompten öppnades från Hive bin-katalogen den Ubuntu

Så här initierar du Hive-metastore-schemat

Hive lagrar varje tabellnamn, kolumnnamn och datatyp i ett relationsarkiv som kallas metaarkiv. Vid en ny installation är det arkivet tomt, och från och med Hive 3.x vägrar gränssnittet att starta förrän schematabellerna finns. Verktyget schematool som finns i Hive bin-katalogen skapar dem.

För en inlärningsuppsättning för en enda användare räcker den medföljande Derby-databasen:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Kommandot skriver ut den schemaversion som skapades och avslutas med schemaTool slutförtDerby skriver sina filer till den katalog som kommandot kördes från, så starta alltid Hive från samma katalog efteråt.

Derby accepterar endast en aktiv session åt gången, vilket gör det olämpligt för ett delat kluster. Point Hive på MySQL istället genom att lägga till anslutningsegenskaperna till hive-site.xml och köra verktyget igen med en annan databastyp:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

Den fullständiga egenskapslistan och placeringen av drivrutiner finns i guiden om hur man konfigurera Hive-metaarkivet med MySQLTvå andra flaggor är värda att komma ihåg:

  • -INFO rapporterar den schemaversion som för närvarande är registrerad i metaarkivet utan att ändra något.
  • -uppgraderingsschema migrerar en befintlig metaarkiv till schemaversionen av den nyligen installerade Hive-versionen.

Med schemat på plats är skalet redo att acceptera sitt första HiveQL-uttryck.

Hive-skalkommandon

Här ska vi skapa en exempeltabell med hjälp av Hive-shellkommandot "create" med kolumnnamn.

Exempelkod för att skapa en databas i Hive. Skärmdumpen nedan visar create-satsen och describe-utdata efter varandra.

Hive-shellutdata för kommandona Create-tabellen och Describe Product

Från skärmdumpen ovan kan vi observera följande:

1) Skapande av en exempeltabell med kolumnnamn i Hive

  • Här är tabellnamnet "produkt" med tre kolumnnamn produkt, namn och pris
  • De tre kolumnnamnen betecknas med respektive datatyp.
  • Alla fält avslutas med ett kommatecken ', '

2) Visa Hive-tabellinformation

  • Med hjälp av kommandot ”beskriv” kan vi se tabellinformationen som finns i Hive.
  • Här visas kolumnnamn med respektive datatyper som finns i tabellschemat.
  • I slutet visas tiden det tog att utföra kommandot och antalet rader som hämtades.

Exempelkod för att skapa en databas i Bikupa (för självkontroll)

1) Skapa tabell product(product int, pname string, price float)

Row format delimited
Fields terminated by ',';

2) beskriv produkten;

När tabellen svarar på beskriva, kopplas skalet, metaarkivet och HDFS samman. Härifrån accepterar samma session det bredare skapa, ändra och ta bort tabell uttalanden och sortera efter, gruppera efter och klustra efter frågor.

Vanliga Hive-installationsfel på Ubuntu och hur man fixar dem

De flesta fel vid första körningen kommer från miljön runt Hive snarare än från själva Hive. Tabellen nedan visar de meddelanden som visas oftast, orsaken till dem och det kommando som rensar dem.

Meddelande på skärmen Trolig orsak Fast
hive: kommandot hittades inte HIVE_HOME/bin finns inte på PATH Kontrollera exportraderna i bashrc igen och kör sedan källa ~ / .bashrc
Versionsinformation hittades inte i metastore Metaarkivschemat initialiserades aldrig Kör schematool med -initSchema för den valda databastypen
Anrop till localhost:9000 misslyckades på grund av anslutningsundantag HDFS körs inte Starta Hadoop-daemonerna och bekräfta att NameNode och DataNode visas i JPS
Namnnoden är i felsäkert läge NameNode är fortfarande i säkert startläge Lämna felsäkert läge med hdfs dfsadmin -safemode lämna
Åtkomst nekad: access=WRITE på /user/hive/warehouse Lagerkatalogen saknar gruppskrivbehörighet Ansök igen hdfs dfs -chmod g+w på katalogerna warehouse och tmp
NoSuchMethodError på Preconditions.checkArgument Hive och Hadoop levererar olika Guava-burkversioner Ta bort den äldre Guava-burken i Hive lib-katalogen och kopiera Hadoop-burken på dess plats.

Ett snabbt sätt att skilja ett Hive-problem från ett Hadoop-problem är att köra JPS först. Om daemonerna saknas är klustret felet; om de finns och skalet fortfarande misslyckas ligger felet i Hive-konfigurationen eller metaarkivschemat. När skalet är stabilt är HiveQL-operatorer och inbyggda funktioner Referens är det naturliga nästa stoppet.

Vanliga frågor

En hanterad tabell låter Hive äga både metadata och filer, så släppping den tar bort data i lagerkatalogen. En extern tabell registrerar endast metadata och släpperping det lämnar de underliggande filerna orörda.

Hive körs överallt där en JVM och Hadoop körs, men shell-skripten antar en Unix-layout. Windows de flesta team använder WSL2 eller en Docker-avbildning; macOS Samma tar-arkiv fungerar när JAVA_HOME och HADOOP_HOME har exporterats.

Beeline är en JDBC-klient som ansluter till HiveServer2 istället för att ladda Hive inuti skalprocessen. Den stöder samtidiga användare och autentisering, och det äldre Hive CLI är föråldrat, så nya installationer bör standardiseras på Beeline.

Moderna sökmotorer matar in historisk frågestatistik i inlärda kostnadsmodeller som förutsäger skanningsstorlekar, partitionsrensning och kopplingsordning. Molnleverantörer exponerar samma signaler som automatiska rekommendationer för filkomprimering, partitionslayout och containerstorlek.

Copilot utarbetar snabbt bashrc-exporter, hive-site.xml-block och schematool-anrop, och agentiska körare kan köra dem i en sandlåda. Behandla utdata som ett första utkast: versionsnummer, portar och katalogsökvägar behöver fortfarande verifieras mot ditt eget kluster.

Ungefär 4 GB RAM och 20 GB ledig disk är bekvämt för inlärning, eftersom Hive i sig är en tunn klient. Produktionsnoder dimensioneras kring Hadoop-klustret och metastore-databasen snarare än kring Hive.

Packa upp den nya utgåvan bredvid den gamla, ompeka HIVE_HOME och kör sedan schematool med -upgradeSchema så att metaarkivet matchar. Borttagningen innebär helt enkelt att Hive-katalogen och strippen tas bort.ping exportraderna från bashrc; HDFS-lagerdata finns kvar.

Nej. MapReduce är föråldrad som en Hive-körningsmotor och Hive 4.x körs på Apache Tez som standard. MapReduce Modellen är fortfarande värd att förstå eftersom Tez följer samma modell för riktade jobb.

Sammanfatta detta inlägg med: