Invia un passaggio personalizzato JAR - 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à.

Invia un passaggio personalizzato JAR

Un programma personalizzato JAR esegue un programma Java compilato che puoi caricare su Amazon S3. È necessario compilare il programma con la versione di Hadoop che si desidera avviare e inviare un CUSTOM_JAR passaggio al cluster Amazon. EMR Per ulteriori informazioni su come compilare un JAR file, consulta. Creazione di file binari con Amazon EMR

Per ulteriori informazioni sulla creazione di un' MapReduce applicazione Hadoop, consultate il MapReduce Tutorial nella documentazione di Apache Hadoop.

Questa sezione illustra le nozioni di base sull'invio di un JAR passaggio personalizzato in Amazon. EMR L'invio di un JAR passaggio personalizzato consente di scrivere uno script per elaborare i dati con il linguaggio di programmazione Java.

Invia un JAR passaggio personalizzato con la console

Questo esempio descrive come utilizzare la EMR console Amazon per inviare un JAR passaggio personalizzato a un cluster in esecuzione.

Per inviare un JAR passaggio personalizzato con la console
  1. Apri la EMR console Amazon all'indirizzo https://console.aws.amazon.com/emr.

  2. In Cluster List (Elenco cluster), selezionare il nome del cluster.

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

  4. Nella finestra di dialogo Add Step (Aggiungi fase):

    • Per il tipo di Step, scegli Personalizzato JAR.

    • Per Nome, accettate il nome predefinito (PersonalizzatoJAR) o digitate un nuovo nome.

    • Per la posizione JAR S3, digita o cerca la posizione del JAR file. JARlocation forse un percorso in S3 o una classe java completamente qualificata nel classpath..

    • Per Arguments (Argomenti), digitare eventuali argomenti obbligatori come stringhe separate da spazi o lasciare il campo vuoto.

    • Per Action on failure (Operazione in caso di errore), accettare l'opzione predefinita, ovvero Continue (Continua).

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

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

Avvio di un cluster e invio di un passaggio personalizzato con JAR AWS CLI

Per avviare un cluster e inviare un JAR passaggio personalizzato con AWS CLI

Per avviare un cluster e inviare un JAR passaggio personalizzato con AWS CLI, digitare il create-cluster sottocomando con il --steps parametro.

  • Per avviare un cluster e inviare un JAR passaggio personalizzato, digitare il seguente comando, replace myKey con il nome della tua EC2 key pair e sostituisci mybucket con il nome del tuo bucket.

    aws emr create-cluster --name "Test cluster" --release-label emr-7.2.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"]
    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 (^).

    Quando specifichi il numero di istanze senza il parametro --instance-groups, viene avviato un singolo nodo primario 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 di EMR servizio e il profilo di EC2 istanza di Amazon predefiniti, digita aws emr create-default-roles per crearli prima di digitare il create-cluster sottocomando.

    Per ulteriori informazioni sull'utilizzo dei EMR comandi Amazon in AWS CLI, consultahttps://docs.aws.amazon.com/cli/latest/reference/emr.

Dipendenze da terze parti

A volte può essere necessario includerlo nel MapReduce classpath JARs da utilizzare con il programma. Ci sono due possibilità per farlo:

  • Includere l'--libjars s3://URI_to_JAR nelle opzioni di fase per la procedura in Avvio di un cluster e invio di un passaggio personalizzato con JAR AWS CLI.

  • Avvia il cluster con un'impostazione mapreduce.application.classpath modificata in mapred-site.xml. Utilizza la classificazione della configurazione mapred-site. Per creare il cluster con lo step using AWS CLI, questo dovrebbe essere il seguente:

    aws emr create-cluster --release-label emr-7.2.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --instance-type m5.xlarge --instance-count 2 --ec2-attributes KeyName=myKey \ --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"] \ --configurations https://s3.amazonaws.com/mybucket/myfolder/myConfig.json

    myConfig.json:

    [ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "path1,path2" } } ]

    L'elenco di percorsi separati da virgole deve essere aggiunto al JVM classpath per ogni attività.