Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Console per Hive

Imparare ad interagire ed utilizzare Hive sfruttando le due console principali supportate: Hive CLI (oggi deprecata) e Beeline.
Imparare ad interagire ed utilizzare Hive sfruttando le due console principali supportate: Hive CLI (oggi deprecata) e Beeline.
Link copiato negli appunti

Uno dei modi più immediati per utilizzare Hive, soprattutto quando se ne affronta lo studio, è quello di avviare una console
da riga di comando. Nel progetto ne esistono due, entrambe rispondenti a comandi presenti nella cartella bin dell'installazione di Hive:

  • Hive CLI, la console originaria che, sebbene deprecata, è tuttora disponibile e può risultare comoda
    in fase di studio del sistema e di sperimentazione;
  • Beeline, la console attuale, nata per interagire con HiveServer2, la versione aggiornata del server Hive.
    La sua connessione verso questo servizio opera su JDBC.

Entrambe le console permettono di lavorare con Hive utilizzando i comandi HiveQL ma hanno due approcci diversi all'avvio della sessione: vediamoli entrambi.

Console Hive CLI

Per usare la console Hive CLI, è sufficiente avere a disposizione un'installazione di Hive pronta all'uso. Il comando
richiesto è il seguente:

hive -h <host> -p <port>

dove le opzioni -h e -p permettono di indicare, rispettivamente, l'host cui ci vogliamo collegare e la
relativa porta TCP. Una connessione senza opzioni andrà comunque bene per un accesso locale:

$ hive
Logging initialized using configuration in jar:file:...
WARNING: Hive CLI is deprecated and migration to Beeline is recommended
hive>

Come si vede, a parte la configurazione dei log, Hive specifica che questa console è deprecata e si consiglia il passaggio a Beeline:
ricordiamo ancora che nonostante ciò sia vero la console Hive CLI può ancora essere utile per la sua semplicità sia in
fase di sperimentazione sia di studio.

I comandi che può ricevere sono di tre tipologie:

  • linguaggio HiveQL per lavorare direttamente sui dati in stile SQL. Tutto ciò verrà approfondito nel resto della
    guida;
  • comandi di shell purchè preceduti da un punto esclamativo "!":
    hive> !ls -la;
    total 216
    drwxr-xr-x 17 bigdata bigdata  4096 May 11 11:30 .
    drwxr-xr-x  4 root   root    4096 Oct 18  2018 ..
    -rw-rw-r--  1 bigdata bigdata    39 Apr 13 07:32 appunti.txt
    -rw-rw-r--  1 bigdata bigdata    20 Apr 12 23:35 slides.pdf
    ...
    ...

    Questa direttiva ha stampato il contenuto della directory corrente al momento dell'invocazione del comando hive;

  • comandi HDFS introdotti dalla parola chiave dfs.
    hive> dfs -ls / ;
    Found 2 items
    drwx-wx-wx   - hduser supergroup          0 2019-05-03 22:35 /tmp
    drwxr-xr-x   - hduser supergroup          0 2019-05-10 13:37 /warehouse

    Con questo comando abbiamo fatto accesso al contenuto della nostra installazione di Hadoop dove il file system HDFS contiene due cartelle: /tmp e /warehouse.

Tutti i comandi della console hive devono terminare con un punto e virgola ";". Infine, quando vorremo abbandonare la console
e tornare al tradizionale ambiente da riga di comando potremo semplicemente digitare quit anch'esso seguito da punto e virgola.

Beeline

Beeline è la console attuale che andrebbe preferita in ambienti di produzione. Dopo averla avviata dovremo fornire noi i
comandi di connessione ad un'istanza di HiveServer2: qualora ci trovassimo a lavorare in una macchina virtuale già pronta come
quella di Cloudera il server probabilmente sarebbe già attivo. Si noti che con Beeline dovremo fornire anche le credenziali di accesso che saranno state inserite nel file di configurazione hive-site.xml della cartella conf di Hive.

La parola chiave da usare per la connessione sarà !connect:

$ beeline
Beeline versione...
beeline> !connect jdbc:hive2://localhost:10000 hive cloudera
...
Connected to: Apache Hive
....

Come si vede nelle righe precedenti (di cui abbiamo lasciato solo le porzioni significative) una volta invocato il comando
beeline verremo ricevuti da un nuovo prompt in cui richiederemo l'attivazione di una connessione al server. La stringa
che è stata utilizzata contiene i parametri per l'individuazione del servizio e richiede indirizzo IP e porta TCP che di default
è impostata a 10000. Si potrebbe inoltre aggiungere in coda il nome del database Hive cui vogliamo collegarci: se, ad esempio, volessimo
lavorare sul database "fantacalcio" utilizzeremmo la connection string jdbc:hive2://localhost:10000/fantacalcio. I due
termini che seguono sono, rispettivamente, username e password di accesso. In questo caso, abbiamo indicato "hive" e "cloudera", le credenziali che si utilizzano con la macchina virtuale di Cloudera ma dovranno essere cambiate in base alla propria configurazione.

Dopo la connessione, si potrà lavorare ai database con i comandi HiveQL e alla fine si potrà uscire dalla console Beeline
con il comando !q o !quit.

Ti consigliamo anche