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à.
Esegui 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 SSH accesso al tuo EMR cluster Amazon
-
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 sulle azioni di bootstrap, consulta Creare azioni di bootstrap per installare software aggiuntivo nella Amazon EMR Management Guide.
Amazon EMR fornisce i seguenti strumenti per aiutarti a eseguire script, comandi e altri programmi sul cluster. Puoi richiamare entrambi gli strumenti utilizzando la console di EMR gestione Amazon o il AWS CLI.
command-runner.jar
-
Si trova su Amazon EMR AMI per il tuo cluster. Puoi utilizzare
command-runner.jar
per eseguire comandi sul cluster. Specificarecommand-runner.jar
senza utilizzare il suo percorso completo. script-runner.jar
-
Ospitato su Amazon S3
s3://
dove si<region>
.elasticmapreduce/libs/script-runner/script-runner.jar
trova la regione in cui risiede il EMR cluster Amazon. Puoi utilizzare<region>
script-runner.jar
per eseguire script salvati localmente o su Amazon S3 sul cluster. È necessario specificare il valore completo URI discript-runner.jar
quando si invia un passaggio.
Invia un JAR passaggio personalizzato per eseguire uno script o un comando
I seguenti AWS CLI esempi illustrano alcuni casi d'uso comuni di command-runner.jar
e script-runner.jar
su AmazonEMR.
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'Args
elenco 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'Args
elenco 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 cps3://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'Args
elenco specifica spark-submit
come comando, seguito da Amazon URI S3 dell'my-app.py
applicazione 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 alcuni casiSDKs, questa è una fase di streaming. |
hive-script |
Esegue uno script Hive. Nella console eSDKs, questa è una fase di Hive. |
pig-script |
Esegue uno script Pig. Nella console eSDKs, questo è un passo Pig. |
spark-submit |
Esegue un'applicazione Spark. Nella console, questa è una fase Spark. |
hadoop-lzo |
Esegue l'LZOindicizzatore Hadoop |
s3-dist-cp |
Copia distribuita grandi quantità di dati da Amazon S3 in. HDFS Per ulteriori informazioni, consulta S3 (DistCp s3-dist-cp). |