Invio di lavoro Pig
Questa sezione illustra l'invio di lavoro Pig a un cluster Amazon EMR. Gli esempi che seguono generano un report contenente il numero totale di byte trasferiti, un elenco dei primi 50 indirizzi IP, un elenco dei primi 50 referrer esterni e i primi 50 termini di ricerca in Bing e Google. Lo script Pig si trova nel bucket Amazon S3 s3://elasticmapreduce/samples/pig-apache/do-reports2.pig
. I dati di input si trovano nel bucket Amazon S3 s3://elasticmapreduce/samples/pig-apache/input
. L'output viene salvato in un bucket Amazon S3.
Invio di lavoro Pig mediante la console di Amazon EMR
Questo esempio descrive come utilizzare la console di Amazon EMR per aggiungere una fase Pig a un cluster.
Per inviare una fase Pig
Apri la console di Amazon EMR all'indirizzo https://console.aws.amazon.com/emr
. -
Scegliere Creare un cluster per creare un cluster con Pig installato. Per i passaggi su come creare un cluster, consulta Pianificare e configurare un cluster Amazon EMR.
-
Aprire una finestra del terminale e utilizzare SSH nel nodo principale del cluster seguendo la procedura descritta in Connettersi al nodo principale tramite SSH. Una volta fatto questo, seguire i passaggi successivi.
sudo mkdir -p /home/hadoop/lib/pig/ sudo aws s3 cp s3://elasticmapreduce/libs/pig/0.3/piggybank-0.3-amzn.jar /home/hadoop/lib/pig/piggybank.jar
-
Nella console, fare clic su Cluster List (Elenco cluster) e selezionare il nome del cluster creato.
-
Scorrere fino alla sezione Steps (Fasi) ed espanderla, quindi scegliere Add step (Aggiungi fase).
-
Nella finestra di dialogo Add Step (Aggiungi fase):
-
Per Step type (Tipo di fase), scegliere Pig program (programma Pig).
-
Per Name (Nome), accettare il nome predefinito (programma Pig) o digitare un nuovo nome.
-
Per Script S3 location (Percorso script S3), digitare il percorso dello script Pig. Ad esempio:
s3://elasticmapreduce/samples/pig-apache/do-reports2.pig
. -
Per Script S3 location (Percorso script S3), digitare il percorso dei dati di input. Ad esempio:
s3://elasticmapreduce/samples/pig-apache/input
. -
Per Output S3 location (Percorso S3 output), digita il nome del bucket di output Amazon S3.
-
Lasciare vuoto il campo Arguments (Argomenti).
-
Per Action on failure (Operazione in caso di errore), accettare l'opzione predefinita, ovvero Continue (Continua).
-
-
Scegliere Add (Aggiungi). La fase viene visualizzata nella console con lo stato Pending (In attesa).
-
Durante l'esecuzione della fase, lo stato passa da Pending (In attesa) a Running (In esecuzione) a Completed (Completata). Per aggiornare lo stato, scegliere l'icona Refresh (Aggiorna) sopra la colonna Actions (Operazioni). Una volta completato il passaggio, controllare il bucket Amazon S3 per confermare che i file di output della fase Pig siano presenti.
Invio di lavoro Pig mediante la AWS CLI
Per inviare una fase Pig mediante l'AWS CLI
Quando si avvia un cluster mediante l'AWS CLI utilizzare il parametro --applications
per installare Pig. Per inviare una fase Pig, utilizzare il parametro --steps
.
-
Per avviare un cluster con Pig installato, digitare il comando seguente, sostituendo
myKey
eDOC-EXAMPLE-BUCKET/
con il nome della coppia di chiavi EC2 e del bucket Amazon S3.aws emr create-cluster \ --name "
Test cluster
" \ --log-uri s3://DOC-EXAMPLE-BUCKET/
\ --release-labelemr-5.36.1
\ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey
\ --instance-typem5.xlarge
\ --instance-count3
Nota
I caratteri di continuazione della riga Linux (\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).
Quando si specifica il numero di istanze senza utilizzare il parametro
--instance-groups
, viene avviato un singolo nodo master e le istanze rimanenti vengono avviate come nodi principali. Tutti i nodi utilizzano il tipo di istanza specificato nel comando.Nota
Se in precedenza non sono stati creati il ruolo del servizio EMR predefinito e il profilo dell'istanza EC2, digita
aws emr create-default-roles
per crearli prima di digitare il sottocomandocreate-cluster
. -
Per inviare una fase Pig, inserire il comando seguente, sostituendo
myClusterId
eDOC-EXAMPLE-BUCKET
con l'ID cluster e il nome del bucket Amazon S3.aws emr add-steps \ --cluster-id
myClusterId
\ --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://DOC-EXAMPLE-BUCKET
/pig-apache/output]Questo comando restituirà un ID fase che può essere utilizzato per controllare lo
State
della fase. -
Esegui una query sullo stato della fase con il comando
describe-step
.aws emr describe-step --cluster-id
myClusterId
--step-ids-1XXXXXXXXXXA
Lo
State
della fase cambia daPENDING
aRUNNING
aCOMPLETED
durante la relativa esecuzione. Una volta completato il passaggio, controllare il bucket Amazon S3 per confermare che i file di output della fase Pig siano presenti.
Per ulteriori informazioni sull'utilizzo di comandi Amazon EMR nella AWS CLI, consulta la Guida di riferimento ai comandi della AWS CLI.