Tutorial su Hadoop Pig: cos'è Apache Pig? Architecnica, esempio
Inizieremo con l'introduzione a Pig
Cos'è Apache Pig?
Pig è un linguaggio di programmazione di alto livello utile per analizzare grandi set di dati. Pig è stato il risultato dello sforzo di sviluppo di Yahoo!
In un framework MapReduce, i programmi devono essere tradotti in una serie di fasi Map e Reduce. Tuttavia, questo non è un modello di programmazione con cui gli analisti di dati hanno familiarità. Quindi, per colmare questa lacuna, è stata costruita un’astrazione chiamata Pig sopra Hadoop.
Apache Pig consente alle persone di concentrarsi maggiormente analizzare insiemi di dati di massa e dedicare meno tempo alla scrittura di programmi Map-Reduce. Simile ai maiali, che mangiano qualsiasi cosa, il maiale Apache linguaggio di programmazione è progettato per funzionare su qualsiasi tipo di dati. Ecco perché il nome, Maiale!

Nel tutorial di Apache Pig per principianti imparerai:
- Cos'è il MAIALE?
- Maiale Architectura
- Prerequisiti
- Come scaricare e installare Pig
- Esempio di sceneggiatura di maiale
Maiale Architectura
ArchiLa struttura di Pig è composta da due componenti:
-
Maiale latino, che è una lingua
-
Un ambiente di esecuzione, per eseguire programmi PigLatin.
Un programma Pig Latin consiste in una serie di operazioni o trasformazioni che vengono applicate ai dati di input per produrre output. Queste operazioni descrivono un flusso di dati che viene tradotto in una rappresentazione eseguibile, dall'ambiente di esecuzione Hadoop Pig. Sotto, i risultati di queste trasformazioni sono una serie di lavori MapReduce di cui un programmatore non è a conoscenza. Quindi, in un certo senso, Pig in Hadoop consente al programmatore di concentrarsi sui dati piuttosto che sulla natura dell'esecuzione.
PigLatin è un linguaggio relativamente irrigidito che utilizza parole chiave familiari dell'elaborazione dati, ad esempio Join, Group e Filter.
Modalità di esecuzione:
Pig in Hadoop ha due modalità di esecuzione:
-
Modalità locale: in questa modalità, il linguaggio Hadoop Pig viene eseguito in un unico file JVM e fa uso del file system locale. Questa modalità è adatta solo per l'analisi di set di dati di piccole dimensioni utilizzando Pig in Hadoop
-
Modalità Map Reduce: in questa modalità vengono tradotte le query scritte in Pig Latin MapReduce lavori e vengono eseguiti su un cluster Hadoop (il cluster può essere pseudo o completamente distribuito). La modalità MapReduce con il cluster completamente distribuito è utile per eseguire Pig su set di dati di grandi dimensioni.
Come scaricare e installare Pig
Ora in questo tutorial di Apache Pig impareremo come scaricare e installare Pig:
Prima di iniziare con il processo vero e proprio, assicurati di aver installato Hadoop. Cambia utente in "hduser" (id utilizzato durante la configurazione di Hadoop, puoi passare all'id utente utilizzato durante la configurazione di Hadoop)
Passo 1) Scarica l'ultima versione stabile di Pig Hadoop da uno qualsiasi dei siti mirror disponibili su
http://pig.apache.org/releases.html
Seleziona tar.gz (e non src.tar.gz) file da scaricare.
Passo 2) Una volta completato il download, vai alla directory contenente il file tar scaricato e sposta il tar nella posizione in cui desideri configurare Pig Hadoop. In questo caso ci sposteremo in /usr/local
Passare a una directory contenente i file Pig Hadoop
cd /usr/local
Estrarre il contenuto del file tar come di seguito
sudo tar -xvf pig-0.12.1.tar.gz
Passo 3). modificare ~ / .bashrc per aggiungere variabili d'ambiente relative a Pig
Apri ~ / .bashrc archivia in qualsiasi editor di testo di tua scelta e apporta le seguenti modifiche:
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Passo 4) Ora, ottieni la configurazione di questo ambiente utilizzando il comando seguente
. ~/.bashrc
Passo 5) Dobbiamo ricompilare MAIALE supportare Hadoop 2.2.0
Ecco i passaggi per farlo-
Vai alla directory home PIG
cd $PIG_HOME
Installa Ant
sudo apt-get install ant
Nota: il download verrà avviato e richiederà tempo in base alla velocità di Internet.
Ricompilare PIG
sudo ant clean jar-all -Dhadoopversion=23
Tieni presente che in questo processo di ricompilazione vengono scaricati più componenti. Quindi, un sistema dovrebbe essere connesso a Internet.
Inoltre, nel caso in cui questo processo si sia bloccato da qualche parte e non vedi alcun movimento sul prompt dei comandi per più di 20 minuti, premi Ctrl + c ed eseguire nuovamente lo stesso comando.
Nel nostro caso ci vogliono 20 minuti
step 6) Prova il Maiale installazione utilizzando il comando
pig -help
Esempio di sceneggiatura di maiale
Utilizzeremo gli script Pig per trovare il numero di prodotti venduti in ciascun paese.
Ingresso: Il nostro set di dati di input è un file CSV, VenditeJan2009.csv
step 1) Avvia Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
step 2) Pig in Big Data prende un file da HDFS in modalità MapReduce e memorizza i risultati su HDFS.
Copia il file VenditeJan2009.csv (memorizzato nel file system locale, ~/input/SalesJan2009.csv) nella directory home di HDFS (Hadoop Distributed File System).
Qui in questo esempio di Apache Pig, il file si trova nell'input della cartella. Se il file è archiviato in un'altra posizione, fornisci quel nome
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Verificare se un file è effettivamente copiato o meno.
$HADOOP_HOME/bin/hdfs dfs -ls /
Passo 3) Configurazione del maiale
Innanzitutto, vai a $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
Apri pig.properties utilizzando un editor di testo a tua scelta e specifica il percorso del file di registro utilizzando pig.logfile
sudo gedit pig.properties
Loger utilizzerà questo file per registrare gli errori.
Passo 4) Esegui il comando "pig" che avvierà il prompt dei comandi di Pig, che è una query interattiva di Pig.
pig
Passo 5)Nel prompt dei comandi Grunt per Pig, esegui i seguenti comandi Pig in ordine.
— A. Caricare il file contenente i dati.
salesTable = LOAD '/SalesJan2009.csv' USING PigStorage(',') AS (Transaction_date:chararray,Product:chararray,Price:chararray,Payment_Type:chararray,Name:chararray,City:chararray,State:chararray,Country:chararray,Account_Created:chararray,Last_Login:chararray,Latitude:chararray,Longitude:chararray);
Premi Invio dopo questo comando.
— B. Raggruppare i dati per campo Paese
GroupByCountry = GROUP salesTable BY Country;
— C. Per ogni tupla in ingresso 'Gruppo per paese', generare la stringa risultante del modulo-> Nome del Paese: N. di prodotti venduti
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Premi Invio dopo questo comando.
— D. Memorizzare i risultati del flusso di dati nella directory 'maiale_output_vendite' su HDFS
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Questo comando richiederà un po' di tempo per essere eseguito. Una volta eseguito, dovresti vedere la seguente schermata
Passo 6) Il risultato può essere visto attraverso l'interfaccia di comando come,
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
I risultati possono anche essere visualizzati tramite un'interfaccia web come-
Risultati attraverso un'interfaccia web-
Apri http://localhost:50070/
in un browser web.
ora scegliere 'Sfoglia il filesystem' e naviga fino a /user/hduser/pig_output_sales
Apri parte-r-00000