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 una fase di streaming
Questa sezione descrive le nozioni di base per l'invio di una fase di streaming a un cluster. Un'applicazione di streaming legge gli input da un ingresso standard e quindi esegue uno script o un eseguibile (chiamato mappatore) su ogni ingresso. Il risultato di ogni ingresso viene salvato localmente, tipicamente su una partizione Hadoop Distributed File System (HDFS). Dopo che tutti gli input sono stati elaborati dal mappatore, un secondo script o eseguibile (chiamato riduttore) elabora i risultati del mappatore. I risultati del riduttore vengono inviati all'output standard. È possibile concatenare una serie di fasi di Streaming, in cui l'output di una fase diventa l'input di un'altra fase.
Il mappatore e il riduttore possono essere referenziati come file oppure si può fornire una classe Java. È possibile implementare il mappatore e il riduttore in qualsiasi lingua supportata, inclusi Ruby, Perl, Python, PHP o Bash.
Invio di una fase di streaming utilizzando la console
Questo esempio descrive come utilizzare la console di Amazon EMR per inviare una fase di Streaming personalizzata a un cluster in esecuzione.
Invio di una fase di streaming
Apri la console Amazon EMR in /emr. https://console.aws.amazon.com
-
In Cluster List (Elenco cluster), selezionare il nome del cluster.
-
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 Streaming program (Programma Streaming).
-
Per Name (Nome), accettare il nome di default, ovvero Streaming program (Programma Streaming), o digitare un nuovo nome.
-
Per Mapper (Mappatore), digitare o aprire la posizione della classe del mapper in Hadoop, o un bucket S3 in cui risiede l'eseguibile del mappatore, come un programma Python. Il valore del percorso deve essere nel formato
BucketName
//.path
MapperExecutable
-
Per Reducer (Riduttore), digitare o aprire la posizione della classe del riduttore in Hadoop, o un bucket S3 in cui risiede l'eseguibile del riduttore, come un programma Python. Il valore del percorso deve essere nel formato
BucketName
/path
/MapperExecutable
. Amazon EMR supporta la parola chiave speciale aggregata. Per ulteriori informazioni, vedere la libreria di aggregazione fornita da Hadoop. -
Per Input S3 location (Percorso input S3), digitare o aprire il percorso dei dati di 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).
AWS CLI
Questi esempi mostrano come utilizzare per AWS CLI creare un cluster e inviare una fase di streaming.
Per creare un cluster e inviare una fase di streaming utilizzando il AWS CLI
-
Per creare un cluster e inviare una fase di streaming utilizzando il AWS CLI, digita il seguente comando e
myKey
sostituiscilo con il nome della tua EC2 key pair. Nota che l'argomento per--files
dovrebbe essere il percorso Amazon S3 della posizione dello script e gli argomenti per-mapper
e-reducer
dovrebbero essere i nomi dei rispettivi file di script.aws emr create-cluster --name "
Test cluster
" --release-labelemr-7.8.0
--applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
\ --steps Type=STREAMING
,Name="Streaming Program"
,ActionOnFailure=CONTINUE
,Args=[--files,pathtoscripts
,-mapper,mapperscript
,-reducer,reducerscript
,aggregate
,-input,pathtoinputdata
,-output,pathtooutputbucket
]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 hai creato il ruolo e il profilo di EC2 istanza del servizio Amazon EMR predefiniti, digita aws
emr create-default-roles
per crearli prima di digitare il sottocomando.create-cluster
Per ulteriori informazioni sull'utilizzo dei comandi Amazon EMR in AWS CLI, consulta. https://docs.aws.amazon.com/cli/latest/reference/emr