Condividi tramite


Usare Apache Pig con Apache Hadoop su HDInsight

Informazioni su come usare Apache Pig con HDInsight.

Apache Pig è una piattaforma che consente la creazione di programmi per Apache Hadoop usando un linguaggio procedurale denominato Pig Latin. Pig è un'alternativa a Java per la creazione di soluzioni MapReduce ed è inclusa in Azure HDInsight. Usare la tabella seguente per individuare i vari modi in cui Pig può essere usato con HDInsight:

Perché usare Apache Pig

Quando si elaborano dati usando MapReduce in Hadoop, uno dei problemi principali è riuscire a implementare la logica di elaborazione usando solo una mappa e una funzione di riduzione. In caso di esigenze di elaborazione complesse, è spesso necessario interrompere l'elaborazione in più operazioni di MapReduce concatenate insieme per ottenere il risultato desiderato.

Pig consente di definire l'elaborazione come una serie di trasformazioni a cui vengono sottoposti i dati fino a raggiungere l'output desiderato.

Il linguaggio Pig Latin consente di descrivere il flusso dati dall'input non elaborato fino all'output desiderato, attraverso una o più trasformazioni. I programmi in Pig Latin seguono questo modello generale:

  • Caricamento: legge i dati da modificare dal file system.

  • Trasforma: modifica i dati.

  • Dump o archivio: restituisce i dati sullo schermo o archiviarli per l'elaborazione.

Funzioni definite dall'utente

Pig Latin supporta anche funzioni definite dall'utente (UDF), che consentono di richiamare componenti esterni in grado di implementare logica difficile da modellare in Pig Latin.

Per altre informazioni su Pig Latin, vedere il manuale di riferimento di Pig Latin 1 e il manuale di riferimento di Pig Latin 2.

Dati di esempio

HDInsight offre diversi set di dati di esempio, archiviati nelle directory /example/data e /HdiSamples. Queste directory si trovano nella risorsa di archiviazione predefinita per il cluster. L'esempio Pig in questo documento usa il file Log4j da /example/data/sample.log.

Ogni log all'interno del file è costituito da una riga di campi che contiene un campo [LOG LEVEL] per visualizzare il tipo e la gravità. Ad esempio:

2012-02-03 20:26:41 SampleClass3 [ERROR] verbose detail for id 1527353937

Nell'esempio precedente, il livello log è ERROR.

Nota

È anche possibile generare un file log4j usando lo strumento di registrazione Apache Log4j e quindi caricandolo nel BLOB. Per istruzioni, vedere Caricamento di dati in HDInsight . Per altre informazioni sul modo in cui HDInsight usa l'archiviazione BLOB di Azure, vedere Usare l'archiviazione BLOB di Azure con HDInsight.

Processo di esempio

Il processo Pig Latin seguente carica il file sample.log dalla risorsa di archiviazione predefinita per il cluster HDInsight. Esegue quindi una serie di trasformazioni che generano un conteggio delle occorrenze di ciascun livello di log presente nei dati di input. I risultati vengono scritti in STDOUT.

LOGS = LOAD 'wasb:///example/data/sample.log';
LEVELS = foreach LOGS generate REGEX_EXTRACT($0, '(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)', 1)  as LOGLEVEL;
FILTEREDLEVELS = FILTER LEVELS by LOGLEVEL is not null;
GROUPEDLEVELS = GROUP FILTEREDLEVELS by LOGLEVEL;
FREQUENCIES = foreach GROUPEDLEVELS generate group as LOGLEVEL, COUNT(FILTEREDLEVELS.LOGLEVEL) as COUNT;
RESULT = order FREQUENCIES by COUNT desc;
DUMP RESULT;

L'immagine seguente illustra un riepilogo degli effetti di ogni trasformazione sui dati.

Rappresentazione grafica delle trasformazioni.

Eseguire il processo Pig Latin

HDInsight può eseguire processi Pig Latin usando vari metodi. Usare la tabella seguente per decidere il metodo più adatto alle proprie esigenze, quindi fare clic sul collegamento per visualizzare una procedura dettagliata.

Pig e SQL Server Integration Services

È possibile usare SQL Server Integration Services (SSIS) per eseguire un processo Pig. Il Feature Pack di Azure per SSIS fornisce i seguenti componenti che funzionano con i processi Pig in HDInsight.

Altre informazioni sul Feature Pack di Azure per SSIS sono disponibili qui.

Passaggi successivi

Dopo avere appreso come usare Pig con HDInsight, vedere i collegamenti seguenti per scoprire altri modi di usare Azure HDInsight.