HIVE installeren op Ubuntu (Download- en installatiehandleiding)

⚡ Slimme samenvatting

Apache Hive wordt geïnstalleerd op Ubuntu Het fungeert als een dunne datawarehouse-laag bovenop een reeds draaiend Hadoop-cluster, waardoor de installatie voornamelijk neerkomt op het uitpakken van één archief en het instellen van drie omgevingsvariabelen die naar de juiste mappen verwijzen.

  • 🧱 Hadoop eerst: Alle Hadoop-daemons moeten al actief zijn, omdat Hive zijn tabelgegevens opslaat in HDFS en zijn taken naar het cluster verzendt.
  • ⬇️ Bron downloaden: Binaire releases zijn afkomstig van de Apache-spiegelpagina en de 3.x-lijn heeft in oktober 2024 het einde van zijn levenscyclus bereikt.
  • 📁 Twee configuratiebestanden: HIVE_HOME hoort in bashrc te staan ​​en HADOOP_HOME hoort in hive-config.sh in de Hive bin-directory.
  • 💾 HDFS-mappen: De mappen warehouse en tmp moeten op HDFS bestaan ​​en schrijfrechten hebben voor de betreffende groep voordat de eerste tabel wordt aangemaakt.
  • 🧩 Schemastap: Het hulpprogramma schematool maakt de metastore-tabellen aan, en Hive 3.x en latere versies weigeren te starten met een niet-geïnitialiseerd schema.
  • 🔨 Controleer snel: Een CREATE-instructie gevolgd door DESCEPT bewijst dat de shell, de metastore en HDFS correct met elkaar zijn verbonden.

Hoe installeer je Hive op Ubuntu

Voordat we Apache Hive installeren, hebben we een aparte omgeving nodig. Hadoop installatie, klaar voor gebruik met alle Hadoop-daemons.

Voor de installatie van Hadoop, raadpleeg dit. link.

Zodra alle Hadoop-daemons naar behoren werken, kunt u beginnen met de installatie van het Hive-gedeelte. De onderstaande stappen beschrijven de installatie in vier fasen:

Installatieproces van Apache Hive

  1. Vereisten en versiecompatibiliteit
  2. Installatie van Hive
  3. Initialisatie van metastoreschema
  4. Hive shell-opdrachten

Vereisten voor het installeren van Apache Hive op Ubuntu

Hive is geen op zichzelf staande database. Het is een querylaag die HiveQL vertaalt naar taken die worden uitgevoerd op een bestaand cluster, waardoor vrijwel elke mislukte installatie mogelijk wordt. tracHet probleem wijst eerder op een ontbrekende voorwaarde dan op Hive zelf. Controleer het volgende voordat u iets downloadt:

  • Een ondersteunde JDK. Hive 4.1.x draait op JDK 17, terwijl Hive 4.2.x de minimale vereiste verhoogt naar JDK 21. Controleer de versie met java -version en zorg ervoor dat JAVA_HOME wordt geëxporteerd.
  • Een werkend Hadoop-cluster. Zowel de NameNode als de DataNode moeten actief zijn. Uitvoeren jps en bevestig dat NameNode, DataNode, ResourceManager en NodeManager allemaal in de lijst voorkomen.
  • Schrijftoegang tot HDFS. Het account dat Hive start, heeft toestemming nodig om mappen aan te maken onder HDFS.
  • Overeenkomende versies. Hive 4.2.0 is gebouwd met Hadoop 3.4.1 en Tez 0.10.5. De Hive 3.x-lijn heeft in oktober 2024 het einde van zijn levenscyclus bereikt, dus een nieuwe installatie moet gericht zijn op de 4.x-lijn.
  • Gratis hulpmiddelen. Een leeromgeving met één node werkt prima met ongeveer 4 GB RAM en 20 GB vrije schijfruimte.

Als aan die voorwaarden is voldaan, verloopt het onderstaande download- en uitpakproces zonder problemen.

Hive installeren op Ubuntu

Hieronder vindt u een stapsgewijs proces voor het installeren van Hive Ubuntu:

Stap 1) Download en installeer Hive op Ubuntu

Voor het downloaden van de stabiele Hive-installatie, raadpleeg de volgende informatie: apache URL zoals hieronder vermeld.

https://www.apache.org/dyn/closer.cgi/hive/ — ga naar de URL en selecteer de Apache-mirror-downloadlink. Apache Hive downloadpagina Geeft een overzicht van welke release bij welke Hadoop-versie hoort.

De spiegelpagina wordt geopend met een lijst van beschikbare Hive-releasedirectory's, zoals hieronder weergegeven.

Apache-spiegelpagina met een overzicht van de beschikbare Apache Hive-releasedirectory's.

Selecteer de nieuwste versie van de Hive-installatie. (In mijn geval is dat Hive 3.1.2.) In de map 'release' staan ​​de binaire en broncodearchieven naast elkaar.

De Hive-releasemap toont de binaire en broncode-distributiearchieven.

Klik op het bin-bestand en de download start.

De browser vraagt ​​om het apache-hive bin tar.gz distributiebestand te downloaden.

Stap 2) Extract het tar-bestand

Ga naar de locatie van het gedownloade tar-bestand en vervolgens naar de locatie van het bestand.tracPak het tar-bestand uit met behulp van de volgende opdracht om Hive te installeren. Ubuntu op uw systeem.

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

De terminal geeft elk bestand weer zodra het wordt uitgepakt in de nieuwe Hive-directory.

Terminaluitvoer tijdens het uitpakken van het Hive tar-archieftracTed op Ubuntu

Stap 3) Plaats verschillende configuratie-eigenschappen in Apache Hive

In deze stap gaan we twee dingen doen:

  1. Het Hive-thuispad toevoegen aan het bashrc-bestand
  2. Het Hadoop-thuispad in hive-config.sh plaatsen.

1) Vermeld het Hive-pad in ~/.bashrc

Open het bestand om het te bewerken met de onderstaande opdracht.

Commando waarmee het bashrc-bestand wordt geopend om de Hive-omgevingsvariabelen te bewerken.

  • Open het bashrc-bestand zoals weergegeven in de bovenstaande schermafbeelding.
  • Vermeld het Hive-thuisdirectorypad, oftewel het HIVE_HOME-pad, in het bashrc-bestand en exporteer het zoals hieronder weergegeven.

De exportregels HIVE_HOME en PATH zijn toegevoegd aan het einde van het bashrc-bestand.

Code Dit moet in bashrc worden geplaatst:

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

Herlaad het bestand met source ~ / .bashrc Het nieuwe pad wordt dus van kracht in de huidige terminalsessie.

2) Het Hadoop-pad exporteren in hive-config.sh

Om met het Hadoop-ecosysteem te communiceren, definiëren we het Hadoop-thuisdirectorypad in het Hive-configuratiebestand. Open hive-config.sh zoals hieronder weergegeven.

Commando gebruikt om hive-config.sh te openen vanuit de Hive bin-directory

Vermeld het HADOOP_HOME-pad in het hive-config.sh-bestand zoals hieronder weergegeven.

Het pad HADOOP_HOME is gedeclareerd in het hive-config.sh-bestand.

Stap 4) Maak Hive-mappen in Hadoop

Om met Hadoop te communiceren, moeten we mappen in Hadoop aanmaken zoals hieronder weergegeven. Hive schrijft de gegevens van beheerde tabellen naar de warehouse-map en de staging-output naar de tmp-map.

HDFS-opdrachten waarmee de Hive tmp- en warehouse-directory's worden aangemaakt.

Het verlenen van rootrechten om Hive-mappen in Hadoop aan te maken. Als er geen foutmelding verschijnt, betekent dit dat Hadoop de benodigde rechten voor de Hive-mappen succesvol heeft verleend.

Terminal toont de schrijfrechten die aan de groep zijn verleend voor de Hive-mappen op HDFS.

Stap 5) Ga naar de Hive-shell

Open de Hive-shell door het volgende in te voeren: '. /bijenkorf' commando zoals hieronder getoond.

De Hive shell prompt is geopend vanuit de Hive bin-directory op Ubuntu

Hoe initialiseer ik het Hive Metastore-schema?

Hive bewaart elke tabelnaam, kolomnaam en gegevenstype in een relationele opslag genaamd de metastore. Bij een nieuwe installatie is die opslag leeg, en vanaf Hive 3.x weigert de shell te starten totdat de schema-tabellen bestaan. Het hulpprogramma schematool, dat zich in de bin-directory van Hive bevindt, maakt deze aan.

Voor een leeromgeving voor één gebruiker is de meegeleverde Derby-database voldoende:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Het commando print de schemaversie die het heeft aangemaakt en eindigt met schemaTool voltooidDerby schrijft zijn bestanden naar dezelfde map van waaruit de opdracht is uitgevoerd, dus start Hive daarna altijd vanuit diezelfde map.

Derby accepteert slechts één actieve sessie tegelijk, waardoor het ongeschikt is voor een gedeeld cluster. Richt Hive op MySQL In plaats daarvan kunt u de verbindingsinstellingen toevoegen aan hive-site.xml en de tool opnieuw uitvoeren met een ander databasetype:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

De volledige lijst met eigendommen en de plaatsing van chauffeurs worden beschreven in de handleiding. configureer de Hive-metastore met MySQLNog twee vlaggen die het vermelden waard zijn:

  • -info rapporteert de schemaversie die momenteel in de metastore is opgeslagen, zonder iets te wijzigen.
  • -upgradeSchema Migreert een bestaande metastore naar de schemaversie van de nieuw geïnstalleerde Hive-release.

Nu het schema is ingesteld, is de shell klaar om zijn eerste HiveQL-statement te accepteren.

Hive shell-opdrachten

Hier gaan we een voorbeeldtabel maken met behulp van het Hive shell-commando "create" met kolomnamen.

Voorbeeldcode voor het aanmaken van een database in Hive. De onderstaande schermafbeelding toont de CREATE-instructie en de DESCREEN-uitvoer na elkaar.

Hive shell-uitvoer voor de commando's `create table` en `describe product`.

Uit de bovenstaande schermafbeelding kunnen we het volgende afleiden:

1) Het maken van een voorbeeldtabel met kolomnamen in Hive

  • Hier is de tabelnaam “product” met drie kolomnamen product, pnaam en prijs
  • De drie kolomnamen worden aangeduid met hun respectievelijke gegevenstypen.
  • Alle velden worden afgesloten met een komma ', '

2) Informatie van Hive-tabellen weergeven

  • Met behulp van het commando "describe" kunnen we de tabelinformatie in Hive bekijken.
  • Hier worden de kolomnamen weergegeven met de bijbehorende gegevenstypen die in het tabelschema aanwezig zijn.
  • Aan het eind wordt de tijd weergegeven die nodig was om de opdracht uit te voeren en het aantal opgehaalde rijen.

Voorbeeldcode voor het aanmaken van een database in Bijenkorf (voor zelfcontrole)

1) Maak een tabel product(product int, pname string, price float)

Row format delimited
Fields terminated by ',';

2) beschrijf het product;

Zodra de tabel reageert op de beschrijving, zijn de shell, de metastore en HDFS met elkaar verbonden. Vanaf hier accepteert dezelfde sessie de bredere tabel aanmaken, wijzigen en verwijderen verklaringen en de sorteren op, groeperen op en clusteren op queries.

Veelvoorkomende installatiefouten bij Hive Ubuntu en hoe je ze kunt oplossen

De meeste fouten bij de eerste keer opstarten worden veroorzaakt door de omgeving rond Hive, en niet door Hive zelf. De onderstaande tabel koppelt de meest voorkomende foutmeldingen aan hun oorzaak en het commando dat ze verhelpt.

Bericht op het scherm waarschijnlijke oorzaak Bepalen
hive: opdracht niet gevonden HIVE_HOME/bin staat niet in het PATH. Controleer de exportregels in bashrc nogmaals en voer het vervolgens uit. source ~ / .bashrc
Versie-informatie niet gevonden in de metastore. Het metastore-schema is nooit geïnitialiseerd. Voer schematool uit met de optie -initSchema voor het gekozen databasetype.
De oproep naar localhost:9000 is mislukt vanwege een verbindingsfout. HDFS werkt niet. Start de Hadoop-daemons en controleer of NameNode en DataNode verschijnen in jps
Namenode bevindt zich in de veilige modus. De NameNode bevindt zich nog steeds in de opstartveilige modus. Verlaat de veilige modus met hdfs dfsadmin -safemode leave
Toegang geweigerd: toegang=WRITE op /user/hive/warehouse De magazijnmap heeft geen schrijfrechten voor de groep. Opnieuw aanvragen hdfs dfs -chmod g+w in de mappen warehouse en tmp
NoSuchMethodError bij Preconditions.checkArgument Hive en Hadoop leveren verschillende Guava JAR-versies. Verwijder het oude Guava JAR-bestand in de Hive lib-directory en kopieer het Hadoop-bestand ervoor in de plaats.

Een snelle manier om een ​​Hive-probleem van een Hadoop-probleem te onderscheiden is door het volgende uit te voeren: jps Ten eerste: als de daemons ontbreken, ligt de fout bij het cluster; als ze wel aanwezig zijn en de shell nog steeds niet werkt, ligt de fout bij de Hive-configuratie of het metastore-schema. Zodra de shell stabiel is, HiveQL-operators en ingebouwde functies Referentie is de logische volgende stap.

Veelgestelde vragen

Een beheerde tabel zorgt ervoor dat Hive zowel de metadata als de bestanden beheert, dus verwijder deze.ping Het verwijdert de gegevens in de datawarehouse-directory. Een externe tabel registreert alleen de metadata en verwijdert deze.ping De onderliggende bestanden blijven ongewijzigd.

Hive werkt overal waar een JVM en Hadoop draaien, maar de shellscripts gaan uit van een Unix-architectuur. Windows De meeste teams gebruiken WSL2 of een Docker-image; macOS Hetzelfde tar-archief werkt zodra JAVA_HOME en HADOOP_HOME zijn geëxporteerd.

Beeline is een JDBC-client die verbinding maakt met HiveServer2 in plaats van Hive in het shellproces te laden. Het ondersteunt gelijktijdige gebruikers en authenticatie, en de oudere Hive CLI is verouderd, dus bij nieuwe installaties wordt Beeline aanbevolen.

Moderne database-engines gebruiken historische querystatistieken als input voor getrainde kostenmodellen die scangroottes, partitie-opschoning en joinvolgorde voorspellen. Cloudproviders gebruiken dezelfde signalen als automatische aanbevelingen voor bestandscompactie, partitie-indeling en containergrootte.

Copilot genereert snel bashrc-exports, hive-site.xml-blokken en schematool-aanroepen, die agentische runners vervolgens in een sandbox kunnen uitvoeren. Beschouw de uitvoer als een eerste concept: versienummers, poorten en directorypaden moeten nog worden geverifieerd aan de hand van uw eigen cluster.

Ongeveer 4 GB RAM en 20 GB vrije schijfruimte is prima voor het leren, aangezien Hive zelf een thin client is. De omvang van de productieknooppunten is meer afgestemd op het Hadoop-cluster en de metastore-database dan op Hive zelf.

Pak de nieuwe release uit naast de oude, wijzig de HIVE_HOME-directory en voer vervolgens schematool uit met -upgradeSchema zodat de metastore overeenkomt. Verwijderen is simpelweg het verwijderen van de Hive-directory en strip.ping De exportregels van bashrc; de HDFS-datawarehousegegevens blijven behouden.

Nee. MapReduce is verouderd als uitvoeringsengine voor Hive en Hive 4.x draait standaard op Apache Tez. KaartVerminderen Het model is nog steeds de moeite waard om te begrijpen, omdat Tez hetzelfde model voor gerichte taken volgt.

Vat dit bericht samen met: