Tutorial: Come iniziare a usare Amazon EMR - 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à.

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.

Diagramma del flusso di lavoro per Amazon EMR che delinea le tre principali categorie di flussi di lavoro di pianificazione e configurazione, gestione e pulizia.
Prerequisiti
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. Di seguito sono riportare righe di esempio del set di dati:

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
  1. 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)
  2. Salva il file con nome health_violations.py.

  3. 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
  1. Scarica il file zip food_establishment_data.zip.

  2. Decomprimere e salvare food_establishment_data.zip come food_establishment_data.csv sulla tua macchina.

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

Console
Per avviare un cluster con Spark installato con la console
  1. Accedi a e apri AWS Management Console la EMR console Amazon all'indirizzo https://console.aws.amazon.com/emr.

  2. EC2Nel riquadro di navigazione a sinistra, scegli Cluster, quindi scegli Crea cluster. EMR

  3. Nella pagina Crea Cluster, prendi nota dei valori predefiniti per Versione, Tipo di istanza, Numero di istanze e Autorizzazioni. Questi campi si compilano in automatico con i valori che funzionano per i cluster per uso generico.

  4. Nel campo Nome cluster, inserisci un nome di cluster univoco per aiutarti a identificare il cluster, ad esempio My first cluster. Il nome del cluster non può contenere i caratteri <, >, $, | o `(backtick).

  5. In Applicazioni, seleziona l'opzione Spark per installare Spark nel cluster.

    Nota

    Scegli le applicazioni che desideri sul tuo EMR cluster Amazon prima di avviare il cluster. Non è possibile aggiungere o rimuovere applicazioni da un cluster dopo l'avvio.

  6. In Registri del cluster, seleziona la casella di spunta Pubblica log specifici del cluster su Amazon S3. Sostituisci il valore di Posizione di Amazon S3 con il bucket Amazon S3 che hai creato seguito da /logs. Ad esempio s3://amzn-s3-demo-bucket/logs. L'aggiunta /logs crea una nuova cartella denominata «logs» nel bucket, in cui Amazon EMR può copiare i file di registro del cluster.

  7. In Configurazione e autorizzazioni di sicurezza, scegli la tua EC2key pair. Nella stessa sezione, seleziona il menu a EMR discesa Service role for Amazon e scegli EMR_ DefaultRole. Quindi, seleziona il menu a discesa del IAMruolo, ad esempio il profilo e scegli EMR_ _ EC2. DefaultRole

  8. Scegli Crea cluster per avviare il cluster e apri la pagina dei dettagli del cluster.

  9. Cerca l'indicazione Stato accanto al nome del cluster. Lo stato cambia da Starting a Running a Waiting man mano che Amazon EMR effettua il provisioning del cluster. Potrebbe essere necessario scegliere l'icona di aggiornamento a destra o aggiornare il browser per visualizzare gli aggiornamenti di stato.

Quando lo stato del cluster passa a In attesa, il cluster è attivo, in esecuzione e pronto per accettare lavoro. Per ulteriori informazioni sulla lettura del riepilogo di un cluster, consulta Visualizza lo stato e i dettagli del EMR cluster Amazon. Per ulteriori informazioni sullo stato del cluster, consulta Comprensione del ciclo di vita del cluster.

CLI
Per avviare un cluster con Spark installato con AWS CLI
  1. Crea ruoli IAM predefiniti che puoi poi utilizzare per creare il tuo cluster utilizzando il seguente comando.

    aws emr create-default-roles

    Per ulteriori informazioni su come create-default-roles, consulta la Guida di riferimento ai comandi della AWS CLI.

  2. Crea un cluster Spark con il comando seguente. Inserisci un nome per il tuo cluster con l'--nameopzione e specifica il nome della tua EC2 key pair con l'--ec2-attributesopzione.

    aws emr create-cluster \ --name "<My First EMR Cluster>" \ --release-label <emr-5.36.2> \ --applications Name=Spark \ --ec2-attributes KeyName=<myEMRKeyPairName> \ --instance-type m5.xlarge \ --instance-count 3 \ --use-default-roles

    Prendi nota degli altri valori richiesti per --instance-type, --instance-count e --use-default-roles. Questi valori sono stati scelti per i cluster generici. Per ulteriori informazioni su come create-cluster, consulta la Guida di riferimento ai comandi della AWS CLI.

    Nota

    I caratteri di continuazione della riga Linux (\) sono inclusi per questioni di leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuovili o sostituiscili con un accento circonflesso (^).

    L'output restituito dovrebbe essere simile al seguente. L'output mostra il ClusterId e ClusterArn del nuovo cluster. Nota il tuo ClusterId. Utilizza il ClusterId per verificare lo stato del cluster e inviare il lavoro.

    { "ClusterId": "myClusterId", "ClusterArn": "myClusterArn" }
  3. Verifica lo stato del cluster con il comando seguente.

    aws emr describe-cluster --cluster-id <myClusterId>

    Verrà visualizzato un output come il seguente con l'oggetto Status per il nuovo cluster.

    { "Cluster": { "Id": "myClusterId", "Name": "My First EMR Cluster", "Status": { "State": "STARTING", "StateChangeReason": { "Message": "Configuring cluster software" } } } }

    Il State valore cambia da STARTING RUNNING a WAITING quando Amazon effettua il EMR provisioning del cluster.

Lo stato del cluster passa a WAITING quando il cluster è attivo, in esecuzione e pronto per accettare lavoro. Per ulteriori informazioni sullo stato del cluster, consulta Comprensione del ciclo di vita del cluster.

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.

Console
Per inviare un'applicazione Spark, procedi passo con la console
  1. Accedi a e apri AWS Management Console la EMR console Amazon all'indirizzo https://console.aws.amazon.com/emr.

  2. EC2Nel riquadro di navigazione a sinistra, scegli Cluster, quindi seleziona il cluster a cui desideri inviare il lavoro. EMR Lo stato del cluster deve essere In attesa.

  3. Scegli la scheda Steps (Fasi), quindi scegli Add step (Aggiungi fase).

  4. Configura la fase in base alle seguenti linee guida:

    • Per Type (Tipo), scegli Spark application (Applicazione Spark). Dovresti visualizzare altri campi per Deploy mode (Modalità di implementazione), Application location (Percorso dell'applicazione) e Spark-submit options (Opzioni Spark-submit).

    • In Name (Nome), inserisci un nuovo nome. Se in un cluster sono presenti più fasi, l'assegnazione di un nome a ciascuna fase aiuta a tenerne traccia.

    • Per Deploy mode (Modalità di implementazione), lascia il valore predefinito Cluster mode (Modalità cluster). Per ulteriori informazioni sulle modalità di implementazione di Spark, consulta la sezione Cluster mode overview (Panoramica della modalità cluster) nella documentazione di Apache Spark.

    • Per Posizione dell'applicazione, inserisci la posizione dello health_violations.py script in Amazon S3, ad esempio s3://amzn-s3-demo-bucket/health_violations.py.

    • Lascia vuoto il campo Spark-submit options (Opzioni Spark-submit). Per ulteriori informazioni sulle opzioni di spark-submit, consulta la sezione Launching applications with spark-submit (Avvio di applicazioni con spark-submit).

    • Nel campo Argomenti, inserisci i seguenti argomenti e valori:

      --data_source s3://amzn-s3-demo-bucket/food_establishment_data.csv --output_uri s3://amzn-s3-demo-bucket/myOutputFolder

      Replace (Sostituisci) s3://amzn-s3-demo-bucket/food_establishment_data.csv con il bucket S3 dei dati URI di input in cui hai preparato. Prepara un'applicazione con dati di input per Amazon EMR

      Replace (Sostituisci) amzn-s3-demo-bucket con il nome del bucket che hai creato per questo tutorial e sostituisci myOutputFolder con un nome per la cartella di output del cluster.

    • Per Action on failure (Operazione in caso di errore), accetta l'opzione predefinita, ossia Continue (Continua). In questo modo, se la fase riscontra un errore, il cluster continua a funzionare.

  5. Seleziona Aggiungi per inviare la fase. La fase viene visualizzata nella console con lo stato In attesa.

  6. Monitora lo stato della fase. Dovrebbe passare da Pending (In attesa) a Running (In esecuzione) a Completed (Completata). Per aggiornare lo stato nella console, scegli l'icona di aggiornamento a destra di Filter (Filtro). Lo script richiede circa un minuto per l'esecuzione. Quando lo stato diventa Completed (Completata), significa che la fase è stata completata correttamente.

CLI
Per inviare un'applicazione Spark, procedi passo con il AWS CLI
  1. Accertati di disporre del ClusterId del cluster che hai avviato in Avvia un EMR cluster Amazon. In alternativa, puoi recuperare l'ID del cluster con il comando seguente.

    aws emr list-clusters --cluster-states WAITING
  2. Invia health_violations.py come fase con il comando add-steps e il ClusterId.

    • Puoi specificare un nome per la tua fase sostituendo "My Spark Application". Nell'Argsarray, sostituisci s3://amzn-s3-demo-bucket/health_violations.py con la posizione dell'health_violations.pyapplicazione.

    • Replace (Sostituisci) s3://amzn-s3-demo-bucket/food_establishment_data.csv con la posizione S3 del tuo food_establishment_data.csv set di dati.

    • Replace (Sostituisci) s3://amzn-s3-demo-bucket/MyOutputFolder con il percorso S3 del bucket designato e un nome per la cartella di output del cluster.

    • ActionOnFailure=CONTINUE indica che il cluster continua a funzionare qualora la fase avesse esito negativo.

    aws emr add-steps \ --cluster-id <myClusterId> \ --steps Type=Spark,Name="<My Spark Application>",ActionOnFailure=CONTINUE,Args=[<s3://amzn-s3-demo-bucket/health_violations.py>,--data_source,<s3://amzn-s3-demo-bucket/food_establishment_data.csv>,--output_uri,<s3://amzn-s3-demo-bucket/MyOutputFolder>]

    Per ulteriori informazioni sull'invio dei passaggi utilizzando ilCLI, consulta il Command Reference.AWS CLI

    Dopo aver inviato la fase, dovresti visualizzare l'output simile al seguente con un elenco di StepIds. Dal momento che hai inviato una sola fase, vedrai un solo ID nell'elenco. Copia il tuo ID della fase. Utilizzare l'ID della fase per verificare lo stato della fase.

    { "StepIds": [ "s-1XXXXXXXXXXA" ] }
  3. Esegui una query sullo stato della fase con il comando describe-step.

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

    L'output restituito dovrebbe essere simile al seguente con le informazioni sul fase.

    { "Step": { "Id": "s-1XXXXXXXXXXA", "Name": "My Spark Application", "Config": { "Jar": "command-runner.jar", "Properties": {}, "Args": [ "spark-submit", "s3://amzn-s3-demo-bucket/health_violations.py", "--data_source", "s3://amzn-s3-demo-bucket/food_establishment_data.csv", "--output_uri", "s3://amzn-s3-demo-bucket/myOutputFolder" ] }, "ActionOnFailure": "CONTINUE", "Status": { "State": "COMPLETED" } } }

    Lo State della fase cambia da PENDING a RUNNING a COMPLETED durante la sua esecuzione. La fase richiede circa un minuto per essere eseguita, quindi potrebbe essere necessario controllarne lo stato più volte.

Saprai che la fase è terminata correttamente quando il relativo State passa a COMPLETED.

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
  1. Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

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

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

  4. Scegli l'oggetto con i risultati, quindi scegli Download per salvare i risultati nel file system locale.

  5. 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à.

Console
Per consentire SSH l'accesso a fonti attendibili per il gruppo di sicurezza principale tramite la console

Per modificare i gruppi di sicurezza, è necessario disporre dell'autorizzazione a gestire i gruppi di sicurezza per il VPC quale si trova il cluster. Per ulteriori informazioni, consulta Modifica delle autorizzazioni per un utente e la Politica di esempio che consente la gestione dei gruppi EC2 di sicurezza nella Guida per l'IAMutente.

  1. Accedi a e apri AWS Management Console la EMR console Amazon all'indirizzo https://console.aws.amazon.com/emr.

  2. EC2Nel riquadro di navigazione a sinistra, scegli Cluster, quindi scegli il cluster che desideri aggiornare. EMR Si apre la pagina dei dettagli del cluster. In questa pagina dovrebbe essere preselezionata la scheda Properties (Proprietà) .

  3. In Rete nella scheda Proprietà, seleziona la freccia accanto ai gruppi EC2 di sicurezza (firewall) per espandere questa sezione. In Primary node (Nodo primario), seleziona il collegamento al gruppo di sicurezza. Una volta completati i seguenti passaggi, puoi facoltativamente tornare a questo passaggio, scegliere i nodi principali e task e ripetere i passaggi seguenti per consentire al SSH client l'accesso ai nodi principali e ai task node.

  4. Viene visualizzata la console di EC2. Scegli la scheda Regole in entrata e quindi Modifica le regole in entrata.

  5. Verifica la presenza di una regola in entrata che consenta l'accesso pubblico con le seguenti impostazioni. Se esiste, scegli Elimina per rimuoverla.

    • Tipo

      SSH

    • Porta

      22

    • Origine

      Personalizzata 0.0.0.0/0

    avvertimento

    Prima di dicembre 2020, il gruppo di sicurezza ElasticMapReduce -master disponeva di una regola preconfigurata per consentire il traffico in entrata sulla porta 22 da tutte le fonti. Questa regola è stata creata per semplificare le SSH connessioni iniziali al nodo master. Consigliamo vivamente di rimuovere questa regola in entrata e limitare il traffico alle origini affidabili.

  6. Scorri fino alla fine dell'elenco di regole e seleziona Aggiungi regola.

  7. Per Tipo, selezionare SSH. La selezione SSH avviene automaticamente TCPper Protocol e 22 per Port Range.

  8. Per origine, seleziona Il mio IP per aggiungere in automatico il tuo indirizzo IP come indirizzo di origine. Puoi anche aggiungere un intervallo di indirizzi IP affidabili del client Custom (Personalizzato), o creare regole aggiuntive per altri client. In molti ambienti di rete, gli indirizzi IP vengono allocati in modo dinamico, perciò, nel futuro, potrebbe essere necessario aggiornare gli indirizzi IP per client affidabili.

  9. Seleziona Salva.

  10. Facoltativamente, scegli i nodi Core e task dall'elenco e ripeti i passaggi precedenti per consentire al SSH client l'accesso ai nodi principali e ai nodi task.

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
  1. 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 esempio C:\Users\<username>\.ssh\mykeypair.pem.

    aws emr ssh --cluster-id <j-2AL4XXXXXX5T9> --key-pair-file <~/mykeypair.key>
  2. 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.

Console
Per terminare il cluster con la console
  1. Accedi a e apri AWS Management Console la EMR console Amazon all'indirizzo https://console.aws.amazon.com/emr.

  2. Seleziona Cluster, quindi scegli il cluster da terminare.

  3. Nel menu a discesa Operazioni, scegli Termina cluster.

  4. Nella finestra di dialogo, scegli Termina. A seconda della configurazione del cluster, la terminazione potrebbe richiedere da 5 a 10 minuti. Per ulteriori informazioni su come utilizzare EMR i cluster Amazon, consultaTermina un EMR cluster Amazon nello stato di avvio, in esecuzione o in attesa.

CLI
Per terminare il cluster con AWS CLI
  1. Avvia il processo di terminazione del cluster con il comando seguente. Replace (Sostituisci) <myClusterId> con l'ID del cluster di esempio. Il comando non restituisce output.

    aws emr terminate-clusters --cluster-ids <myClusterId>
  2. Per verificare che il processo di terminazione del cluster è in corso di esecuzione, controlla lo stato del cluster con il comando seguente.

    aws emr describe-cluster --cluster-id <myClusterId>

    Di seguito è riportato un esempio di output in JSON formato. Lo Status del cluster dovrebbe passare da TERMINATING a TERMINATED. La terminazione potrebbe richiedere da 5 a 10 minuti a seconda della configurazione del cluster. Per ulteriori informazioni sulla chiusura di un EMR cluster Amazon, consultaTermina un EMR cluster Amazon nello stato di avvio, in esecuzione o in attesa.

    { "Cluster": { "Id": "j-xxxxxxxxxxxxx", "Name": "My Cluster Name", "Status": { "State": "TERMINATED", "StateChangeReason": { "Code": "USER_REQUEST", "Message": "Terminated by user request" } } } }

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.

Sfoglia il blog EMR tecnico

Per esempi di procedure dettagliate e discussioni tecniche approfondite sulle nuove EMR funzionalità di Amazon, consulta il AWS blog sui big data.