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à.
Tutorial: Come iniziare a usare Amazon EMR
Segui un flusso di lavoro per configurare rapidamente un EMR cluster Amazon ed eseguire un'applicazione Spark.
Configurazione del EMR cluster Amazon
Con Amazon EMR puoi configurare un cluster per elaborare e analizzare i dati con framework di big data in pochi minuti. Questo tutorial mostra come avviare un cluster di esempio utilizzando Spark e come eseguire un semplice PySpark script archiviato in un bucket Amazon S3. Copre EMR le attività essenziali di Amazon in tre categorie principali di flussi di lavoro: pianificazione e configurazione, gestione e pulizia.
Nel corso del tutorial sono disponibili collegamenti ad argomenti più dettagliati e idee per ulteriori fasi nella sezione Passaggi successivi. Se hai domande o hai problemi, contatta il EMR team di Amazon sul nostro forum di discussione
Prerequisiti
-
Prima di avviare un EMR cluster Amazon, assicurati di completare le attività inPrima di configurare Amazon EMR.
Costo
-
Il cluster di esempio che crei viene eseguito in un ambiente reale. Il cluster accumula costi minimi. Per evitare costi aggiuntivi, assicurati di completare le processi di pulizia nell'ultima fase di questo tutorial. Gli addebiti vengono calcolati alla tariffa al secondo in base ai prezzi di Amazon. EMR I costi variano anche in base alla Regione. Per ulteriori informazioni, consulta i EMRprezzi di Amazon
. -
Potrebbero esserci degli costi minimi per i file di piccole dimensioni che archivi su Amazon S3. Alcuni o tutti i costi per Amazon S3 potrebbero non essere addebitati se rientri nei limiti di utilizzo del AWS piano gratuito. Per ulteriori informazioni, consulta Prezzi di Amazon S3
e Piano gratuito di AWS .
Fase 1: configurare le risorse di dati e avviare un EMR cluster Amazon
Preparare lo storage per Amazon EMR
Quando usi AmazonEMR, puoi scegliere tra una varietà di file system per archiviare dati di input, dati di output e file di registro. In questo tutorial, lo usi EMRFS per archiviare i dati in un bucket S3. EMRFSè un'implementazione del file system Hadoop che consente di leggere e scrivere file normali su Amazon S3. Per ulteriori informazioni, consulta Lavorare con sistemi di storage e file con Amazon EMR.
Per creare un bucket per questo tutorial, segui le istruzioni in Come creare un bucket S3? nella Guida per l'utente della console Amazon Simple Storage Service. Crea il bucket nella stessa AWS regione in cui prevedi di lanciare il tuo EMR cluster Amazon. Ad esempio, US West (Oregon) us-west-2 (Stati Uniti occidentali (Oregon) us-west-2).
I bucket e le cartelle che usi con Amazon EMR presentano le seguenti limitazioni:
-
I nomi devono includere lettere minuscole, numeri, punti (.) e trattini (-).
-
I nomi non devono terminare con numeri.
-
Il nome del bucket deve essere univoco per tutti gli account AWS .
-
Una cartella di output deve essere vuota.
Prepara un'applicazione con dati di input per Amazon EMR
Il modo più comune per preparare un'applicazione per Amazon EMR consiste nel caricare l'applicazione e i relativi dati di input su Amazon S3. Poi, quando invii il lavoro al cluster, specificare le posizioni Amazon S3 per i vostri script e dati.
In questo passaggio, carichi uno PySpark script di esempio nel tuo bucket Amazon S3. Ti abbiamo fornito uno PySpark script da utilizzare. Lo script elabora i dati di ispezione degli stabilimenti alimentari e restituisce un file dei risultati nel bucket S3. Il file di risultati elenca i primi dieci stabilimenti alimentari con il maggior numero di violazioni di tipo "Red (Rosso)".
Inoltre, carichi dati di input di esempio su Amazon S3 per l'elaborazione dello PySpark script. I dati di input sono una versione modificata dei risultati delle ispezioni condotte dal 2006 al 2020 dal Dipartimento di sanità pubblica della Contea di King, Washington. Per ulteriori informazioni, consulta Dati pubblici della Contea di King: dati di ispezione sugli stabilimenti alimentari
name, inspection_result, inspection_closed_business, violation_type, violation_points 100 LB CLAM, Unsatisfactory, FALSE, BLUE, 5 100 PERCENT NUTRICION, Unsatisfactory, FALSE, BLUE, 5 7-ELEVEN #2361-39423A, Complete, FALSE, , 0
Per preparare lo PySpark script di esempio per EMR
-
Copia il codice di esempio fornito di seguito in un nuovo file nell'editor che hai scelto.
import argparse from pyspark.sql import SparkSession def calculate_red_violations(data_source, output_uri): """ Processes sample food establishment inspection data and queries the data to find the top 10 establishments with the most Red violations from 2006 to 2020. :param data_source: The URI of your food establishment data CSV, such as 's3://amzn-s3-demo-bucket/food-establishment-data.csv'. :param output_uri: The URI where output is written, such as 's3://amzn-s3-demo-bucket/restaurant_violation_results'. """ with SparkSession.builder.appName("Calculate Red Health Violations").getOrCreate() as spark: # Load the restaurant violation CSV data if data_source is not None: restaurants_df = spark.read.option("header", "true").csv(data_source) # Create an in-memory DataFrame to query restaurants_df.createOrReplaceTempView("restaurant_violations") # Create a DataFrame of the top 10 restaurants with the most Red violations top_red_violation_restaurants = spark.sql("""SELECT name, count(*) AS total_red_violations FROM restaurant_violations WHERE violation_type = 'RED' GROUP BY name ORDER BY total_red_violations DESC LIMIT 10""") # Write the results to the specified output URI top_red_violation_restaurants.write.option("header", "true").mode("overwrite").csv(output_uri) if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument( '--data_source', help="The URI for you CSV restaurant data, like an S3 bucket location.") parser.add_argument( '--output_uri', help="The URI where output is saved, like an S3 bucket location.") args = parser.parse_args() calculate_red_violations(args.data_source, args.output_uri)
-
Salva il file con nome
health_violations.py
. -
Carica
health_violations.py
su Amazon S3 nel bucket che hai creato per questo tutorial. Per istruzioni, consulta Caricamento di un oggetto in un bucket nella Guida alle operazioni di base di Amazon Simple Storage Service.
Per preparare i dati di input di esempio per EMR
-
Scarica il file zip food_establishment_data.zip.
-
Decomprimere e salvare
food_establishment_data.zip
comefood_establishment_data.csv
sulla tua macchina. -
Carica il CSV file nel bucket S3 che hai creato per questo tutorial. Per istruzioni, consulta Caricamento di un oggetto in un bucket nella Guida alle operazioni di base di Amazon Simple Storage Service.
Per ulteriori informazioni sulla configurazione dei dati perEMR, consulta. Prepara i dati di input per l'elaborazione con Amazon EMR
Avvia un EMR cluster Amazon
Dopo aver preparato una posizione di archiviazione e l'applicazione, puoi avviare un EMR cluster Amazon di esempio. In questa fase, avvii un cluster Apache Spark utilizzando l'ultima EMRversione di Amazon.
Passaggio 2: invia il lavoro al tuo EMR cluster Amazon
Invia il lavoro e visualizza i risultati
Dopo aver avviato un cluster, è possibile inviare il lavoro al cluster in esecuzione per elaborare e analizzare i dati. Invii il lavoro a un EMR cluster Amazon come fase successiva. Una fase è un'unità di lavoro costituita da uno o più operazioni. Ad esempio, potresti inviare una fase per calcolare valori o per trasferire ed elaborare dati. Puoi inviare fasi quando crei un cluster o a un cluster in esecuzione. In questa parte del tutorial, invii health_violations.py
come fase al cluster in esecuzione. Per ulteriori informazioni sulle fasi, consulta Invia il lavoro a un EMR cluster Amazon.
Per ulteriori informazioni sul ciclo di vita delle fasi, consulta Esecuzione di fasi per elaborare i dati.
Visualizzazione dei risultati
Se l'esecuzione della fase è stata riuscita, puoi visualizzarne i risultati nella cartella output di Amazon S3.
Visualizzazione dei risultati di health_violations.py
Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/
-
Scegli il Bucket name (Nome bucket) e la cartella di output che hai specificato all'invio della fase. Ad esempio,
amzn-s3-demo-bucket
e poimyOutputFolder
. -
Verifica che nella cartella di output siano presenti i seguenti elementi:
-
Un oggetto di piccole dimensioni denominato
_SUCCESS
. -
Un CSV file che inizia con il prefisso
part-
che contiene i risultati.
-
-
Scegli l'oggetto con i risultati, quindi scegli Download per salvare i risultati nel file system locale.
-
Apri i risultati nell'editor che preferisci. Il file di output elenca i primi dieci stabilimenti alimentari con il maggior numero di violazioni di tipo "red (rosso)". Il file di output mostra anche il numero totale di violazioni di tipo "red (rosso)" per ogni stabilimento.
Di seguito è riportato un esempio di risultati
health_violations.py
.name, total_red_violations SUBWAY, 322 T-MOBILE PARK, 315 WHOLE FOODS MARKET, 299 PCC COMMUNITY MARKETS, 251 TACO TIME, 240 MCDONALD'S, 177 THAI GINGER, 153 SAFEWAY INC #1508, 143 TAQUERIA EL RINCONSITO, 134 HIMITSU TERIYAKI, 128
Per ulteriori informazioni sull'output EMR del cluster Amazon, consultaConfigura una posizione per l'output EMR del cluster Amazon.
Quando usi AmazonEMR, potresti voler connetterti a un cluster in esecuzione per leggere i file di registro, eseguire il debug del cluster o utilizzare CLI strumenti come la shell Spark. Amazon ti EMR consente di connetterti a un cluster utilizzando il protocollo Secure Shell (SSH). Questa sezione spiega come configurareSSH, connettersi al cluster e visualizzare i file di registro per Spark. Per ulteriori informazioni sulla connessione a un cluster, consulta Autenticazione sui nodi del EMR cluster Amazon.
Autorizza le SSH connessioni al tuo cluster
Prima di connetterti al cluster, devi modificare i gruppi di sicurezza del cluster per autorizzare le connessioni in entrataSSH. I gruppi EC2 di sicurezza di Amazon agiscono come firewall virtuali per controllare il traffico in entrata e in uscita verso il cluster. Quando hai creato il cluster per questo tutorial, Amazon EMR ha creato i seguenti gruppi di sicurezza per tuo conto:
- ElasticMapReduce-padrone
-
Il gruppo di sicurezza EMR gestito di Amazon predefinito associato al nodo primario. In un EMR cluster Amazon, il nodo principale è un'EC2istanza Amazon che gestisce il cluster.
- ElasticMapReduce-schiavo
-
Il gruppo di sicurezza predefinito associato ai nodi principali e attività.
Connect al cluster utilizzando il AWS CLI
Indipendentemente dal sistema operativo in uso, è possibile creare una SSH connessione al cluster utilizzando il AWS CLI.
Per connettersi al cluster e visualizzare i file di registro utilizzando il AWS CLI
-
Usa il comando seguente per aprire una SSH connessione al tuo cluster. Replace (Sostituisci)
<mykeypair.key>
con il percorso completo e il nome del file di key pair. Ad esempioC:\Users\<username>\.ssh\mykeypair.pem
.aws emr ssh --cluster-id
<j-2AL4XXXXXX5T9>
--key-pair-file<~/mykeypair.key>
-
Navigare a
/mnt/var/log/spark
per accedere ai registri Spark sul nodo principale del cluster. Quindi visualizza i file in quella posizione. Per un elenco di file di log aggiuntivi sul nodo principale, consulta Visualizzazione di file di log sul nodo primario.cd /mnt/var/log/spark ls
Passaggio 3: ripulisci le tue EMR risorse Amazon
Terminazione di un cluster
Ora che hai inviato il lavoro al cluster e visualizzato i risultati della tua PySpark candidatura, puoi terminare il cluster. L'interruzione di un cluster interrompe tutti gli EMR addebiti Amazon e le EC2 istanze Amazon associati al cluster.
Quando chiudi un cluster, Amazon EMR conserva i metadati relativi al cluster gratuitamente per due mesi. I metadati archiviati ti aiutano clonare il cluster per un nuovo lavoro o rivedere la configurazione del cluster a scopo di riferimento. I metadati non includono i dati che il cluster scrive su S3 o i dati archiviati nel cluster. HDFS
Nota
La EMR console Amazon non consente di eliminare un cluster dalla visualizzazione elenco dopo averlo terminato. Un cluster terminato scompare dalla console quando Amazon EMR cancella i relativi metadati.
Eliminazione di risorse S3
Per evitare costi aggiuntivi, devi eliminare il bucket Amazon S3. L'eliminazione del bucket rimuove tutte le risorse di Amazon S3 per questo tutorial. Il bucket deve contenere:
-
La sceneggiatura PySpark
-
Il set di dati di input
-
La cartella dei risultati di output
-
La cartella dei file di log
Potrebbe essere necessario eseguire ulteriori passaggi per eliminare i file archiviati se PySpark lo script o l'output sono stati salvati in una posizione diversa.
Nota
Il cluster deve essere terminato prima di eliminare il bucket. In caso contrario, potrebbe non essere consentito svuotare il bucket.
Per eliminare il bucket, segui le istruzioni in Come eliminare un bucket S3? nella Guida per l'utente di Amazon Simple Storage Service.
Passaggi successivi
Ora hai lanciato il tuo primo EMR cluster Amazon dall'inizio alla fine. Hai inoltre completato EMR attività essenziali come la preparazione e l'invio di applicazioni per Big Data, la visualizzazione dei risultati e la chiusura di un cluster.
Utilizza i seguenti argomenti per saperne di più su come personalizzare il tuo EMR flusso di lavoro Amazon.
Esplora le applicazioni Big Data per Amazon EMR
Scopri e confronta le applicazioni per big data che puoi installare su un cluster nella Amazon EMR Release Guide. La Release Guide descrive in dettaglio ogni versione di EMR rilascio e include suggerimenti per l'utilizzo di framework come Spark e Hadoop su Amazon. EMR
Pianificazione dell'hardware, della rete e della sicurezza del cluster
In questo tutorial, hai creato un EMR cluster semplice senza configurare opzioni avanzate. Le opzioni avanzate consentono di specificare i tipi di EC2 istanze Amazon, la rete di cluster e la sicurezza dei cluster. Per ulteriori informazioni sulla pianificazione e sull'avvio di un cluster che soddisfi i tuoi requisiti, consulta Pianifica, configura e avvia i EMR cluster Amazon e Sicurezza in Amazon EMR.
Gestione di cluster
Immergiti nel lavoro con i cluster in esecuzione Gestisci i EMR cluster Amazon. Per gestire un cluster, è possibile connettersi al cluster, eseguire il debug delle fasi e tenere traccia delle processi e l'integrità del cluster. Puoi anche regolare le risorse del cluster in risposta alle richieste del carico di lavoro con la scalabilità EMR gestita.
Uso di un'interfaccia diversa
Oltre alla EMR console Amazon, puoi gestire Amazon EMR utilizzando il AWS Command Line Interface servizio API web o uno dei tanti supportati AWS SDKs. Per ulteriori informazioni, consulta Interfacce di gestione.
Puoi anche interagire con le applicazioni installate sui EMR cluster Amazon in molti modi. Alcune applicazioni come Apache Hadoop pubblicano interfacce Web visualizzabili. Per ulteriori informazioni, consulta Visualizza le interfacce Web ospitate su cluster Amazon EMR.