Creazione di operazioni di bootstrap per l'installazione di software aggiuntivo - 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à.

Creazione di operazioni di bootstrap per l'installazione di software aggiuntivo

Puoi utilizzare un'operazione di bootstrap per installare software aggiuntivo o personalizzare la configurazione delle istanze del cluster. Le azioni Bootstrap sono script che vengono eseguiti sul cluster dopo che Amazon EMR avvia l'istanza utilizzando Amazon Linux Amazon Machine Image (). AMI Le azioni di bootstrap vengono eseguite prima che Amazon EMR installi le applicazioni specificate al momento della creazione del cluster e prima che i nodi del cluster inizino a elaborare i dati. Aggiungendo nodi a un cluster in esecuzione, le operazioni di bootstrap vengono eseguite allo stesso modo anche su questi nodi. È possibile creare e specificare operazioni di bootstrap personalizzate al momento della creazione del cluster.

La maggior parte delle azioni di bootstrap predefinite per le EMR AMI versioni 2.x e 3.x di Amazon non sono supportate nelle versioni 4.x di Amazon. EMR Ad esempio, configure-Hadoop e non configure-daemons sono supportati nella EMR versione 4.x di Amazon. Invece, la EMR versione 4.x di Amazon fornisce nativamente questa funzionalità. Per ulteriori informazioni su come migrare le azioni di bootstrap dalle EMR AMI versioni 2.x e 3.x di Amazon alla versione 4.x di EMR Amazon, consulta Personalizzazione della configurazione di cluster e applicazioni con AMI le versioni precedenti di Amazon EMR nella Amazon Release Guide. EMR

Nozioni di base sulle operazioni di bootstrap

Per impostazione predefinita, le operazioni di bootstrap vengono eseguite come utente Hadoop. Puoi eseguire un'operazione di bootstrap con privilegi root utilizzando sudo.

Tutte le interfacce EMR di gestione di Amazon supportano le azioni bootstrap. Puoi specificare fino a 16 azioni di bootstrap per cluster fornendo più bootstrap-actions parametri dalla console, AWS CLI oppure. API

Dalla EMR console Amazon, puoi facoltativamente specificare un'azione di bootstrap durante la creazione di un cluster.

Quando usi ilCLI, puoi passare i riferimenti agli script di azione bootstrap ad Amazon EMR aggiungendo il --bootstrap-actions parametro quando crei il cluster utilizzando il create-cluster comando.

--bootstrap-actions Path="s3://mybucket/filename",Args=[arg1,arg2]

Se l'azione bootstrap restituisce un codice di errore diverso da zero, Amazon lo EMR considera un errore e termina l'istanza. Se troppe istanze falliscono nelle operazioni di bootstrap, Amazon EMR chiude il cluster. Se solo alcune istanze falliscono, Amazon EMR tenta di riallocare le istanze fallite e continuare. Utilizza il codice di errore lastStateChangeReason del cluster per identificare gli errori causati da un'operazione di bootstrap.

Esecuzione di un'operazione di bootstrap in modo condizionale

Per eseguire solo operazioni di bootstrap sul nodo principale, puoi utilizzare un'operazione di bootstrap personalizzata con una logica per determinare se il nodo è quello principale.

#!/bin/bash if grep isMaster /mnt/var/lib/info/instance.json | grep false; then echo "This is not master node, do nothing,exiting" exit 0 fi echo "This is master, continuing to execute script" # continue with code logic for master node below

Il seguente output verrà stampato da un nodo principale.

This is not master node, do nothing, exiting

Il seguente output verrà stampato da un nodo principale.

This is master, continuing to execute script

Per utilizzare questa logica, carica l'operazione di bootstrap, incluso il codice sopra, nel bucket Amazon S3. Sul AWS CLI, aggiungi il --bootstrap-actions parametro alla aws emr create-cluster API chiamata e specifica la posizione dello script di bootstrap come valore di. Path

Operazioni di arresto

Lo script di un'operazione di bootstrap può creare una o più operazioni di arresto scrivendo script nella directory /mnt/var/lib/instance-controller/public/shutdown-actions/. Alla chiusura di un cluster, tutti gli script della directory vengono eseguiti in parallelo. Ogni script deve essere eseguito e completato entro 60 secondi.

Se il nodo viene chiuso con un errore, l'esecuzione degli script per le operazioni di arresto non è garantita.

Nota

Quando utilizzi EMR le versioni di Amazon 4.0 e successive, devi creare manualmente la /mnt/var/lib/instance-controller/public/shutdown-actions/ directory sul nodo master. Non esiste di default ma, dopo la sua creazione, gli script nella directory vengono comunque eseguiti prima dell'arresto. Per ulteriori informazioni sulla connessione al nodo master per creare directory, consulta Connect al nodo primario utilizzando SSH.

Utilizzo di operazioni di bootstrap personalizzate

Puoi creare uno script personalizzato per eseguire un'operazione di bootstrap personalizzata. Qualsiasi EMR interfaccia Amazon può fare riferimento a un'azione di bootstrap personalizzata.

Nota

Per prestazioni ottimali, ti consigliamo di archiviare azioni di bootstrap personalizzate, script e altri file che desideri utilizzare con Amazon EMR in un bucket Amazon S3 che si trova nello Regione AWS stesso cluster.

Aggiunta di operazioni di bootstrap personalizzate

Console
Per creare un cluster con un'azione di bootstrap con la console
  1. Accedi a e apri la EMR console Amazon all'indirizzo https://console.aws.amazon.com/emr. AWS Management Console

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

  3. In Bootstrap actions (Operazioni di bootstrap), scegli Add (Aggiungi) per specificare un nome, la posizione dello script e gli argomenti opzionali per l'operazione. Seleziona Add bootstrap action (Aggiungi operazione di bootstrap).

  4. Se lo desideri, puoi aggiungere altre operazioni di bootstrap.

  5. Scegli qualsiasi altra opzione applicabile al cluster.

  6. Per avviare il cluster, scegli Create cluster (Crea cluster).

CLI
Per creare un cluster con un'azione di bootstrap personalizzata con AWS CLI

Quando si utilizza l'azione AWS CLI per includere un'azione bootstrap, specificare Path and Args come elenco separato da virgole. L'esempio seguente non utilizza un elenco di argomenti.

  • Per avviare un cluster con un'azione bootstrap personalizzata, digitate il seguente comando, sostituendo myKey con il nome della tua EC2 key pair. Includi --bootstrap-actions come parametro e specifica la posizione dello script bootstrap come valore di Path.

    • Utenti Linux e Mac OS X: UNIX

      aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 \ --use-default-roles --ec2-attributes KeyName=myKey \ --applications Name=Hive Name=Pig \ --instance-count 3 --instance-type m5.xlarge \ --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"
    • Utenti Windows:

      aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --use-default-roles --ec2-attributes KeyName=myKey --applications Name=Hive Name=Pig --instance-count 3 --instance-type m5.xlarge --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"

    Quando si specifica il numero di istanze senza utilizzare il parametro --instance-groups, viene avviato un singolo nodo primario e le istanze rimanenti vengono avviate come nodi core. Tutti i nodi utilizzeranno 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.

Utilizzo di un'operazione di bootstrap personalizzata per la copia di un oggetto da Amazon S3 su ogni nodo

Puoi utilizzare un'operazione di bootstrap per copiare oggetti da Amazon S3 su ogni nodo di un cluster prima di installare le tue applicazioni. AWS CLI Viene installato su ogni nodo di un cluster, in modo che l'azione di bootstrap possa richiamare AWS CLI comandi.

L'esempio seguente mostra il semplice script di un'operazione di bootstrap che copia un file, myfile.jar, da Amazon S3 in una cartella locale, /mnt1/myfolder, su ogni nodo del cluster. Lo script viene salvato su Amazon S3 con il nome di file copymyfile.sh e con i seguenti contenuti.

#!/bin/bash aws s3 cp s3://mybucket/myfilefolder/myfile.jar /mnt1/myfolder

All'avvio del cluster, è necessario specificare lo script. L' AWS CLI esempio seguente lo dimostra:

aws emr create-cluster --name "Test cluster" --release-label emr-7.2.0 \ --use-default-roles --ec2-attributes KeyName=myKey \ --applications Name=Hive Name=Pig \ --instance-count 3 --instance-type m5.xlarge \ --bootstrap-actions Path="s3://mybucket/myscriptfolder/copymyfile.sh"