Invio di lavoro Pig - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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
  1. Apri la console Amazon EMR in /emr. https://console.aws.amazon.com

  2. 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.

  3. 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
  4. Nella console, fare clic su Cluster List (Elenco cluster) e selezionare il nome del cluster creato.

  5. Scorrere fino alla sezione Steps (Fasi) ed espanderla, quindi scegliere Add step (Aggiungi fase).

  6. 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).

  7. Scegliere Add (Aggiungi). La fase viene visualizzata nella console con lo stato Pending (In attesa).

  8. 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.

Invia il lavoro di Pig utilizzando il AWS CLI

Per inviare un passo Pig usa il AWS CLI

Quando avvii un cluster utilizzando il AWS CLI, usa il --applications parametro per installare Pig. Per inviare una fase Pig, utilizzare il parametro --steps.

  1. Per avviare un cluster con Pig installato, digita il seguente comando, sostituendo myKey e amzn-s3-demo-bucket/ con il nome della tua coppia di EC2 chiavi e del bucket Amazon S3.

    aws emr create-cluster \ --name "Test cluster" \ --log-uri s3://amzn-s3-demo-bucket/ \ --release-label emr-5.36.2 \ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey \ --instance-type m5.xlarge \ --instance-count 3
    Nota

    I caratteri di continuazione della riga Linux (\) sono inclusi per questioni di 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 e il profilo di EC2 istanza predefiniti, digitare aws emr create-default-roles per crearli prima di digitare il sottocomando. create-cluster

  2. Per inviare una fase Pig, inserisci il seguente comando, sostituendo myClusterId e amzn-s3-demo-bucket inserendo l'ID del cluster e il nome del tuo 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://amzn-s3-demo-bucket/pig-apache/output]

    Questo comando restituirà un ID fase che può essere utilizzato per controllare lo State della fase.

  3. Esegui una query sullo stato della fase con il comando describe-step.

    aws emr describe-step --cluster-id myClusterId --step-id s-1XXXXXXXXXXA

    Lo State della fase cambia da PENDING a RUNNING a COMPLETED durante la sua 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 dei comandi Amazon EMR in AWS CLI, consulta il AWS CLI Command Reference.