Usare la visualizzazione Hive con Hadoop in HDInsight

Informazioni su come eseguire query Hive usando la vista Hive di Ambari. Ambari è un'utilità per la gestione e il monitoraggio fornita con i cluster HDInsight basati su Linux. Una delle funzionalità fornite da Ambari è un'interfaccia utente Web che può essere usata per eseguire query Hive.

Nota

Ambari include numerose funzionalità non illustrate in questo documento. Per altre informazioni, vedere Gestire i cluster HDInsight usando l'interfaccia utente Web di Ambari.

Prerequisiti

Importante

I passaggi descritti in questo documento richiedono un cluster HDInsight che usa Linux. Linux è l'unico sistema operativo usato in HDInsight versione 3.4 o successiva. Per altre informazioni, vedere la sezione relativa al ritiro di HDInsight in Windows.

Aprire la visualizzazione Hive

Per accedere alle visualizzazioni di Ambari dal portale di Azure, selezionare il cluster HDInsight e quindi Visualizzazioni di Ambari nella sezione Collegamenti rapidi.

Sezione Collegamenti rapidi del portale

Nell'elenco di viste selezionare vista Hive.

Vista Hive selezionata

Nota

Quando si accede ad Ambari, viene richiesto di eseguire l'autenticazione al sito. Immettere il nome dell'account amministratore (il valore predefinito è admin) e la password usati durante la creazione del cluster.

Verrà visualizzata una pagina simile all'immagine seguente:

Immagine del foglio di lavoro della query per la vista Hive

Eseguire una query

Per eseguire una query Hive, seguire questa procedura dalla vista di Hive.

  1. Dalla scheda Query incollare le istruzioni HiveQL seguenti nel foglio di lavoro:

    DROP TABLE log4jLogs;
    CREATE EXTERNAL TABLE log4jLogs(t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
    STORED AS TEXTFILE LOCATION '/example/data/';
    SELECT t4 AS sev, COUNT(*) AS cnt FROM log4jLogs WHERE t4 = '[ERROR]' GROUP BY t4;
    

    Di seguito sono elencate le istruzioni che eseguono queste azioni:

    • DROP TABLE: elimina la tabella e il file di dati, qualora la tabella esista già.

    • CREATE EXTERNAL TABLE: crea una nuova tabella "esterna" in Hive. Le tabelle esterne archiviano solo la definizione della tabella in Hive. I dati rimangono nel percorso originale.

    • ROW FORMAT: indica il modo in cui sono formattati i dati. In questo caso, i campi in ogni log sono separati da uno spazio.

    • STORED AS TEXTFILE LOCATION: indica dove sono archiviati i dati e che sono archiviati come testo.

    • SELECT: seleziona un conteggio di tutte le righe in cui la colonna t4 include il valore [ERROR].

      Nota

      Usa le tabelle esterne se si prevede che i dati sottostanti verranno aggiornati da un'origine esterna. Ad esempio, un processo di caricamento dati automatizzato o un'altra operazione MapReduce. L'eliminazione di una tabella esterna non comporta anche l'eliminazione dei dati. Viene eliminata solo la definizione della tabella.

      Importante

      Mantenere la selezione di Database predefinita. Gli esempi di questo documento usano il database predefinito incluso in HDInsight.

  2. Per avviare la query, usare il pulsante Execute (Esegui) sotto il foglio di lavoro. Il pulsante diventa arancione e il testo cambia in Stop (Arresta).

  3. Al termine dell'elaborazione della query, nella scheda Results (Risultati) vengono visualizzati i risultati dell'operazione. Il testo seguente è il risultato della query:

     sev       cnt
     [ERROR]   3
    

    La scheda Logs può essere usata per visualizzare le informazioni sulla registrazione create dal processo,

    Suggerimento

    La finestra di dialogo Save results (Salva risultati) nella parte superiore sinistra della sezione Query Process Results (Risultati del processo query) consente di scaricare o salvare i risultati.

  4. Selezionare le prime quattro righe di questa query, quindi selezionare Execute (Esegui). Si noti che, al termine del processo, non viene visualizzato alcun risultato. Se si usa il pulsante Execute (Esegui) quando parte della query è selezionata, verranno eseguite solo le istruzioni selezionate. In questo caso, la selezione non include l'istruzione finale che recupera le righe dalla tabella. Se si seleziona solo tale riga e si usa Execute (Esegui), verranno visualizzati i risultati previsti.

  5. Per aggiungere un foglio di lavoro, usare il pulsate New Worksheet (Nuovo foglio di lavoro) nella parte inferiore di Query Editor (Editor query). Nel nuovo foglio di lavoro immettere le istruzioni HiveQL seguenti:

    CREATE TABLE IF NOT EXISTS errorLogs (t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string) STORED AS ORC;
    INSERT OVERWRITE TABLE errorLogs SELECT t1, t2, t3, t4, t5, t6, t7 FROM log4jLogs WHERE t4 = '[ERROR]';
    

    Di seguito sono elencate le istruzioni che eseguono queste azioni:

    • CREATE TABLE IF NOT EXISTS : crea una tabella, se non esiste già. Poiché non viene usata la parola chiave EXTERNAL, viene creata una tabella interna. Una tabella interna verrà archiviata nel data warehouse di Hive e gestita completamente da Hive. A differenza delle tabelle esterne, se si elimina una tabella interna, vengono eliminati anche i dati sottostanti.

    • STORED AS ORC : archivia i dati nel formato ORC (Optimized Row Columnar). ORC è un formato altamente ottimizzato ed efficiente per l'archiviazione di dati Hive.

    • INSERT OVERWRITE ... SELECT: seleziona dalla tabella log4jLogs le righe contenenti [ERROR] e quindi inserisce i dati nella tabella errorLogs.

      Usare il pulsante Execute (Esegui) per eseguire la query. La scheda Results (Risultati) non contiene informazioni quando la query restituisce zero righe. Lo stato visualizzato deve essere SUCCEEDED dopo il completamento della query.

Visual Explain

Per aprire una visualizzazione del piano di query, selezionare la scheda Visual Explain (Spiegazione visiva) sotto il foglio di lavoro.

La vista Visual Explain (Spiegazione visiva) della query può essere utile per conoscere il flusso delle query complesse. Per un equivalente testuale di questa visualizzazione, usare il pulsante Explain (Spiega) in Query Editor.

Interfaccia utente di Tez

Per visualizzare l'interfaccia utente di Tez per la query, selezionare la scheda Tez sotto il foglio di lavoro.

Importante

Tez non viene usato per risolvere tutte le query. Molte query possono essere risolte senza usare Tez.

Se per risolvere la query è stato usato Tez, viene visualizzato il grafo aciclico diretto. Se si vuole visualizzare il DAG per le query eseguite in passato o eseguire il debug del processo Tez, usare invece Tez View .

Visualizzare la cronologia processo

La scheda Jobs (Processi) visualizza una cronologia delle query Hive.

Immagine della cronologia processo

Tabelle di database

È possibile usare la scheda Tables (Tabelle) per utilizzare le tabelle in un database Hive.

Immagine della scheda delle tabelle

Query salvate

Dalla scheda Query è facoltativamente possibile salvare le query. Dopo avere salvato una query, è possibile usarla di nuovo dalla scheda Saved Queries (Query salvate).

Immagine della scheda delle query salvate

Funzioni definite dall'utente

Hive può anche essere esteso tramite funzioni definite dall'utente, che consentono di implementare funzionalità o logica non facilmente modellate in HiveQL.

La scheda della funzione definita dall'utente nella parte superiore della vista Hive consente di dichiarare e salvare un set di funzioni definite dall'utente, che è possibile usare con Query Editor.

Immagine della scheda delle funzioni definite dall'utente

Dopo avere aggiunto una funzione definita dall'utente alla visualizzazione Hive, verrà visualizzato un pulsante Insert udfs (Inserisci funzioni definite dall'utente) nella parte inferiore di Query Editor. Se si seleziona questa voce, verrà visualizzato un elenco di riepilogo a discesa di funzioni definite dall'utente nella vista Hive. La selezione di una funzione definita dall'utente aggiungerà istruzioni HiveQL alla query per abilitare la funzione definita dall'utente.

Ad esempio, se è stata specificata una funzione definita dall'utente con le proprietà seguenti:

  • Nome della risorsa: myudfs

  • Percorso della risorsa: /myudfs.jar

  • Nome della funzione definita dall'utente: myawesomeudf

  • Nome della classe per la funzione definita dall'utente: com.myudfs.Awesome

Se si usa il pulsante Insert udfs (Inserisci funzioni definite dall'utente), verrà visualizzata una voce denominata myudfs, con un altro elenco a discesa per ogni funzione definita dall'utente specificata per tale risorsa. In questo caso, myawesomeudf. Se si seleziona questa voce, verrà aggiunto quanto segue all'inizio della query:

add jar /myudfs.jar;
create temporary function myawesomeudf as 'com.myudfs.Awesome';

Si potrà quindi usare la funzione definita dall'utente nella query, Ad esempio, SELECT myawesomeudf(name) FROM people;.

Per altre informazioni sull'uso di funzioni definite dall'utente con Hive in HDInsight, vedere i documenti seguenti:

Settings di Hive

Le impostazioni possono essere usate per modificare varie impostazioni di Hive. Consentono ad esempio di cambiare il motore di esecuzione per Hive da Tez (opzione predefinita) a MapReduce.

Passaggi successivi

Per informazioni generali su Hive in HDInsight:

Per informazioni su altre modalità d'uso di Hadoop in HDInsight: