Come installare HIVE su Ubuntu (Guida al download e alla configurazione)

⚡ Riepilogo intelligente

Apache Hive si installa su Ubuntu Si tratta di un sottile strato di data warehouse sopra un cluster Hadoop già in esecuzione, quindi la configurazione consiste principalmente nell'estrarre un archivio e impostare tre variabili d'ambiente che puntano alle directory corrette.

  • 🧱 Prima Hadoop: Ogni demone Hadoop deve essere già in esecuzione, perché Hive memorizza i dati delle sue tabelle su HDFS e invia i suoi job al cluster.
  • ⬇️ Fonte di download: Le versioni binarie provengono dalla pagina mirror di Apache e la linea 3.x ha raggiunto la fine del suo ciclo di vita nell'ottobre 2024.
  • 📁 Due file di configurazione: La variabile d'ambiente HIVE_HOME deve trovarsi nel file bashrc, mentre la variabile d'ambiente HADOOP_HOME deve trovarsi nel file hive-config.sh all'interno della directory bin di Hive.
  • 💾 Cartelle HDFS: Le directory warehouse e tmp devono esistere su HDFS con permessi di scrittura per il gruppo prima che venga creata la prima tabella.
  • 🧩 Fase dello schema: L'utility schematool crea le tabelle del metastore e Hive 3.x e versioni successive si rifiutano di avviarsi con uno schema non inizializzato.
  • 🔨 Verifica rapidamente: Un'istruzione CREATE seguita da un'istruzione DESCRIVE dimostra che la shell, il metastore e HDFS sono tutti collegati correttamente.

Come installare Hive su Ubuntu

Prima dell'installazione di Apache Hive è necessario un dedicato Hadoop installazione, attivo e funzionante con tutti i demoni Hadoop.

Per l'installazione di Hadoop, consultare questo link.

Una volta che tutti i daemon di Hadoop funzionano correttamente, è sufficiente avviare l'installazione della parte relativa a Hive. La procedura descritta di seguito si articola in quattro fasi:

Processo di installazione di Apache Hive

  1. Prerequisiti e compatibilità delle versioni
  2. Installazione di Hive
  3. Inizializzazione dello schema Metastore
  4. Comandi della shell Hive

Prerequisiti per l'installazione di Apache Hive su Ubuntu

Hive non è un database autonomo. È un livello di query che traduce HiveQL in processi che vengono eseguiti su un cluster esistente, quindi quasi ogni installazione fallita tracIl problema è dovuto a un prerequisito mancante piuttosto che a Hive stesso. Prima di scaricare qualsiasi cosa, verifica quanto segue:

  • Un JDK supportato. Hive 4.1.x funziona su JDK 17, mentre Hive 4.2.x eleva il minimo a JDK 21. Controlla la versione con java -version e assicurarsi che JAVA_HOME sia esportato.
  • Un cluster Hadoop in esecuzione. Sia il NameNode che il DataNode devono essere attivi. Esegui JPS e verificare che NameNode, DataNode, ResourceManager e NodeManager siano tutti presenti nell'elenco.
  • Accesso in scrittura a HDFS. L'account che avvia Hive necessita dell'autorizzazione per creare directory sotto HDFS.
  • Versioni corrispondenti. Hive 4.2.0 è basato su Hadoop 3.4.1 e Tez 0.10.5. Il supporto per la serie Hive 3.x è terminato nell'ottobre 2024, quindi una nuova installazione dovrebbe essere basata sulla serie 4.x.
  • Risorse gratuite. Una configurazione di apprendimento a nodo singolo funziona bene con circa 4 GB di RAM e 20 GB di spazio libero su disco.

Una volta selezionate queste opzioni, la sequenza di download e decompressione descritta di seguito si svolge senza intoppi.

Come installare Hive su Ubuntu

Di seguito è riportato un processo passo passo su come installare Hive in Ubuntu:

Passaggio 1) Scarica e installa Hive su Ubuntu

Per scaricare la configurazione stabile di Hive, fare riferimento a Apache URL come menzionato di seguito.

https://www.apache.org/dyn/closer.cgi/hive/ — vai al URL e selezionare il link di download del mirror Apache. Pagina di download di Apache Hive Questo elenco mostra quali release sono abbinate a ciascuna versione di Hadoop.

La pagina mirror si apre con l'elenco delle directory di rilascio di Hive disponibili, come mostrato di seguito.

Pagina mirror di Apache che elenca le directory di rilascio di Apache Hive disponibili.

Seleziona la versione più recente del programma di installazione di Hive. (Nel mio caso, si tratta della versione 3.1.2 di Hive.) La cartella di rilascio elenca gli archivi binari e sorgente uno accanto all'altro.

Cartella di rilascio di Hive che mostra gli archivi di distribuzione binaria e sorgente

Fai clic sul file bin e il download avrà inizio.

Richiesta di download tramite browser per il file di distribuzione tar.gz apache-hive bin.

Passo 2) Es.tracil file tar

Vai alla posizione del file tar scaricato, quindi eseguitract il file tar utilizzando il seguente comando per installare Hive su Ubuntu sul tuo sistema.

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

Il terminale visualizza ogni file man mano che viene decompresso nella nuova directory di Hive.

Output del terminale mentre l'archivio tar di Hive è in esecuzionetracted su Ubuntu

Passaggio 3) Posiziona diverse proprietà di configurazione in Apache Hive

In questa fase, faremo due cose:

  1. Inserimento del percorso della directory home di Hive nel file bashrc
  2. Inserimento del percorso della directory principale di Hadoop in hive-config.sh

1) Specifica il percorso di Hive in ~/.bashrc

Apri il file per la modifica con il comando mostrato di seguito.

Comando che apre il file bashrc per la modifica delle variabili d'ambiente di Hive

  • Apri il file bashrc come mostrato nella schermata precedente.
  • Specifica il percorso della directory principale di Hive, ovvero il percorso HIVE_HOME, nel file bashrc ed esportalo come mostrato di seguito.

Sono state aggiunte le righe di esportazione HIVE_HOME e PATH alla fine del file bashrc.

Code da inserire in bashrc:

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

Ricarica il file con fonte ~ / .bashrc quindi il nuovo percorso entra in vigore nella sessione del terminale corrente.

2) Esportazione del percorso Hadoop in hive-config.sh

Per comunicare con l'ecosistema Hadoop, definiamo il percorso della directory principale di Hadoop nel file di configurazione di Hive. Apri hive-config.sh come mostrato di seguito.

Comando utilizzato per aprire hive-config.sh dalla directory bin di Hive

Specificare il percorso HADOOP_HOME nel file hive-config.sh come mostrato di seguito.

Percorso HADOOP_HOME dichiarato all'interno del file hive-config.sh

Passaggio 4) Crea directory Hive in Hadoop

Per comunicare con Hadoop, è necessario creare delle directory in Hadoop come mostrato di seguito. Hive scrive i dati delle tabelle gestite nella directory del data warehouse e l'output di staging nella directory tmp.

Comandi HDFS che creano le directory tmp e warehouse di Hive

Assegnare i permessi di root per creare le cartelle Hive in Hadoop. Se non viene visualizzato alcun messaggio di errore, significa che Hadoop ha assegnato correttamente i permessi alle cartelle Hive.

Il terminale mostra i permessi di scrittura di gruppo concessi alle cartelle Hive su HDFS

Passaggio 5) Entrare nel guscio dell'alveare

Entra nel guscio dell'alveare inserendo '. /alveare' comando come mostrato di seguito.

Prompt della shell Hive aperto dalla directory bin di Hive su Ubuntu

Come inizializzare lo schema del metastore di Hive

Hive memorizza ogni nome di tabella, nome di colonna e tipo di dato in un archivio relazionale chiamato metastore. In una nuova installazione, questo archivio è vuoto e, a partire da Hive 3.x, la shell si rifiuta di avviarsi finché le tabelle dello schema non esistono. L'utility schematool, inclusa nella directory bin di Hive, si occupa di crearle.

Per una configurazione di apprendimento per singolo utente, il database Derby incluso è sufficiente:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Il comando stampa la versione dello schema che ha creato e termina con schemaTool completatoDerby scrive i suoi file nella directory da cui è stato eseguito il comando, quindi avvia sempre Hive dalla stessa directory in seguito.

Derby accetta una sola sessione attiva alla volta, il che lo rende inadatto a un cluster condiviso. Point Hive a MySQL invece aggiungendo le proprietà di connessione al file hive-site.xml e rieseguendo lo strumento con un tipo di database diverso:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

L'elenco completo delle proprietà e il posizionamento del conducente sono trattati nella guida su come configurare il metastore Hive con MySQLAltre due bandiere meritano di essere ricordate:

  • -Informazioni riporta la versione dello schema attualmente registrata nel metastore senza apportare modifiche.
  • -upgradeSchema Esegue la migrazione di un metastore esistente alla versione dello schema della release di Hive appena installata.

Con lo schema impostato, la shell è pronta ad accettare la sua prima istruzione HiveQL.

Comandi della shell Hive

Qui creeremo una tabella di esempio utilizzando il comando shell di Hive "create" con i nomi delle colonne.

Esempio di codice per la creazione di un database in Hive. Lo screenshot seguente mostra l'istruzione CREATE e l'output di DESCRIBE uno dopo l'altro.

Output della shell Hive per i comandi create table e describe product

Dallo screenshot qui sopra possiamo osservare quanto segue:

1) Creazione di una tabella di esempio con i nomi delle colonne in Hive

  • Qui il nome della tabella è "prodotto" con tre nomi di colonne prodotto, nome e prezzo
  • I nomi delle tre colonne sono indicati dal rispettivo tipo di dati.
  • Tutti i campi sono terminati da una virgola ', '

2) Visualizzazione delle informazioni della tabella Hive

  • Utilizzando il comando “describe” possiamo visualizzare le informazioni della tabella presenti in Hive
  • Qui vengono visualizzati i nomi delle colonne con i rispettivi tipi di dati presenti nello schema della tabella.
  • Alla fine, verrà visualizzato il tempo impiegato per eseguire questo comando e il numero di righe recuperate

Esempio di codice per la creazione di un database in Alveare (per autocontrollo)

1) Crea la tabella prodotto(prodotto intero, nome_prodotto stringa, prezzo float)

Row format delimited
Fields terminated by ',';

2) descrivere il prodotto;

Una volta che la tabella risponde a describe, la shell, il metastore e HDFS sono tutti collegati insieme. Da qui la stessa sessione accetta il più ampio creare, modificare ed eliminare una tabella dichiarazioni e il ordina per, raggruppa per e cluster per interrogazioni.

Errori comuni di installazione di Hive su Ubuntu e come risolverli

La maggior parte degli errori al primo avvio deriva dall'ambiente circostante Hive piuttosto che da Hive stesso. La tabella seguente associa i messaggi che compaiono più frequentemente alla loro causa e al comando per eliminarli.

Messaggio sullo schermo Causa probabile Fissare
hive: comando non trovato HIVE_HOME/bin non è presente nel PATH Ricontrolla le righe di esportazione in bashrc, quindi esegui fonte ~ / .bashrc
Informazioni sulla versione non trovate nel metastore Lo schema del metastore non è mai stato inizializzato Eseguire schematool con l'opzione -initSchema per il tipo di database scelto.
La chiamata a localhost:9000 non è riuscita a causa di un'eccezione di connessione. HDFS non è in esecuzione Avvia i daemon Hadoop e conferma che NameNode e DataNode appaiono in JPS
Il nodo Name è in modalità sicura Il NameNode è ancora in modalità sicura di avvio. Esci dalla modalità sicura con hdfs dfsadmin -safemode leave
Permesso negato: accesso=SCRITTURA su /user/hive/warehouse La directory del magazzino non dispone dei permessi di scrittura per il gruppo. Riapplica hdfs dfs -chmod g+w nelle directory warehouse e tmp
Errore NoSuchMethodError su Preconditions.checkArgument Hive e Hadoop distribuiscono versioni diverse del file jar di Guava. Elimina il vecchio file jar di Guava nella directory lib di Hive e copia al suo posto quello di Hadoop.

Un modo rapido per separare un problema di Hive da un problema di Hadoop è eseguire JPS Innanzitutto, se i daemon non sono presenti, il problema è nel cluster; se sono presenti e la shell continua a non funzionare, il problema risiede nella configurazione di Hive o nello schema del metastore. Una volta che la shell è stabile, Operatori e funzioni integrate di HiveQL Il riferimento è la naturale tappa successiva.

DOMANDE FREQUENTI

Una tabella gestita consente a Hive di possedere sia i metadati che i file, quindi eliminaping elimina i dati nella directory del magazzino. Una tabella esterna registra solo i metadati e li eliminaping lascia inalterati i file sottostanti.

Hive funziona ovunque siano in esecuzione una JVM e Hadoop, ma gli script di shell presuppongono un layout Unix. Windows la maggior parte dei team utilizza WSL2 o un'immagine Docker; su macOS Lo stesso archivio tar funziona una volta esportate le variabili d'ambiente JAVA_HOME e HADOOP_HOME.

Beeline è un client JDBC che si connette a HiveServer2 anziché caricare Hive all'interno del processo shell. Supporta utenti simultanei e autenticazione, e poiché la vecchia interfaccia a riga di comando di Hive è deprecata, le nuove installazioni dovrebbero adottare Beeline come standard.

I motori moderni utilizzano le statistiche storiche delle query per elaborare modelli di costo appresi che prevedono le dimensioni delle scansioni, l'eliminazione delle partizioni e l'ordine di join. I fornitori di servizi cloud espongono gli stessi segnali sotto forma di raccomandazioni automatiche per la compattazione dei file, la configurazione delle partizioni e il dimensionamento dei container.

Copilot genera rapidamente file bashrc, blocchi hive-site.xml e chiamate a schematool, che possono essere eseguiti in un ambiente sandbox dagli agenti. Considera l'output come una prima bozza: i numeri di versione, le porte e i percorsi delle directory devono ancora essere verificati sul tuo cluster.

Circa 4 GB di RAM e 20 GB di spazio libero su disco sono sufficienti per l'apprendimento, dato che Hive è un thin client. Le dimensioni dei nodi di produzione sono dimensionate in base al cluster Hadoop e al database del metastore, piuttosto che in base a Hive.

Estrai la nuova versione accanto a quella vecchia, reindirizza HIVE_HOME, quindi esegui schematool con -upgradeSchema in modo che il metastore corrisponda. La rimozione consiste semplicemente nell'eliminare la directory Hive e rimuovereping le righe di esportazione da bashrc; i dati del data warehouse HDFS rimangono.

No. MapReduce è deprecato come motore di esecuzione di Hive e Hive 4.x viene eseguito su Apache Tez per impostazione predefinita. MapReduce Il modello è comunque degno di essere compreso perché Tez segue lo stesso modello di lavoro diretto.

Riassumi questo post con: