Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Eseguire comandi e script su un cluster 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à.

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

Eseguire comandi e script su un cluster Amazon EMR

In questo argomento viene illustrato come eseguire un comando o uno script come fase del cluster. L'esecuzione di un comando o di uno script come fase è uno dei molti modi che puoi Invia lavoro a un cluster ed è utile nelle seguenti situazioni:

  • Quando non hai accesso SSH al tuo cluster Amazon EMR

  • Quando si desidera eseguire un comando bash o shell per risolvere i problemi del cluster

Puoi eseguire uno script sia quando crei un cluster che quando lo stato del cluster è WAITING. Per eseguire uno script prima dell'inizio dell'elaborazione delle fasi, utilizza invece un'operazione di bootstrap. Per ulteriori informazioni, consulta Creazione di operazioni di bootstrap per l'installazione di software aggiuntivo nella Guida alla gestione di Amazon EMR.

Amazon EMR fornisce i seguenti strumenti per aiutarti a eseguire script, comandi e altri programmi in cluster. Puoi richiamare entrambi gli strumenti utilizzando la console di gestione Amazon EMR o la AWS CLI.

command-runner.jar

Situato sull'AMI Amazon EMR per il tuo cluster. Puoi utilizzare command-runner.jar per eseguire comandi sul cluster. Specificare command-runner.jar senza utilizzare il suo percorso completo.

script-runner.jar

Ospitato su Amazon S3 a s3://<region>.elasticmapreduce/libs/script-runner/script-runner.jar dove <region> è la Regione in cui risiede il cluster Amazon EMR. Puoi utilizzare script-runner.jar per eseguire script salvati localmente o su Amazon S3 sul cluster. Devi specificare l'URI completo di script-runner.jar quando invii un passaggio.

Invia un passaggio JAR personalizzato per l'esecuzione di uno script o di un comando

I seguenti AWS CLI esempi illustrano alcuni casi d'uso comuni di command-runner.jar e script-runner.jar su Amazon EMR.

Esempio : esecuzione di un comando su un cluster utilizzando command-runner.jar

Quando si utilizza command-runner.jar, si specificano comandi, opzioni e valori nell'elenco degli argomenti del passaggio.

L' AWS CLI esempio seguente invia un passaggio a un cluster in esecuzione che richiama. command-runner.jar Il comando specificato nell'Argselenco scarica uno script chiamato my-script.sh da Amazon S3 nella home directory dell'utente hadoop. Il comando modifica quindi le autorizzazioni dello script e viene eseguito. my-script.sh

Quando si utilizza il AWS CLI, gli elementi dell'Argselenco devono essere separati da virgole senza spazi bianchi tra gli elementi dell'elenco. Ad esempio, Args=[example-command,example-option,"example option value"] anziché Args=[example-command, example-option, "example option value"].

aws emr add-steps \ --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="Download a script from S3, change its permissions, and run it",ActionOnFailure=CONTINUE,Jar=command-runner.jar,Args=[bash,-c,"aws s3 cp s3://amzn-s3-demo-bucket/my-script.sh /home/hadoop; chmod u+x /home/hadoop/my-script.sh; cd /home/hadoop; ./my-script.sh"]
Esempio : esecuzione di uno script su un cluster utilizzando script-runner.jar

Quando si utilizza script-runner.jar, si specifica lo script che si desidera eseguire nell'elenco degli argomenti del passaggio.

L' AWS CLI esempio seguente invia un passaggio a un cluster in esecuzione che richiama. script-runner.jar In questo caso, lo script chiamato my-script.sh viene archiviato su Amazon S3. È possibile specificare anche script locali archiviati nel nodo principale del cluster.

aws emr add-steps \ --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="Run a script from S3 with script-runner.jar",ActionOnFailure=CONTINUE,Jar=s3://us-west-2.elasticmapreduce/libs/script-runner/script-runner.jar,Args=[s3://amzn-s3-demo-bucket/my-script.sh]

Altri modi per utilizzare command-runner.jar

È possibile utilizzare anche command-runner.jar per inviare lavori a un cluster con strumenti come spark-submit o hadoop-streaming. Quando si avvia un'applicazione utilizzando command-runner.jar, specifichi CUSTOM_JAR come tipo di passaggio invece di utilizzare un valore come SPARK, STREAMING, oppure PIG. La disponibilità degli strumenti varia a seconda delle applicazioni installate sul cluster.

Il seguente comando di esempio utilizza command-runner.jar per inviare un passaggio utilizzando spark-submit. L'Argselenco specifica spark-submit come comando, seguito dall'URI Amazon S3 dell'my-app.pyapplicazione Spark con argomenti e valori.

aws emr add-steps \ --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="Run spark-submit using command-runner.jar",ActionOnFailure=CONTINUE,Jar=command-runner.jar,Args=[spark-submit,S3://amzn-s3-demo-bucket/my-app.py,ArgName1,ArgValue1,ArgName2,ArgValue2]

La tabella seguente identifica gli strumenti aggiuntivi che è possibile eseguire utilizzando command-runner.jar.

Nome dello strumento Descrizione
hadoop-streaming Invia un programma di streaming Hadoop. Nella console e in altri casi SDKs, questa è una fase di streaming.
hive-script Esegue uno script Hive. Nella console e SDKs, questa è una fase di Hive.
pig-script Esegue uno script Pig. Nella console e SDKs, questo è un passo Pig.
spark-submit

Esegue un'applicazione Spark. Nella console, questa è una fase Spark.

hadoop-lzo Esegue l'indicizzatore Hadoop LZO su una directory.
s3-dist-cp Copia distribuita di grandi quantità di dati da Amazon S3 in HDFS. Per ulteriori informazioni, consulta S3 (s3-dist-cp) DistCp .
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.