Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Enviar un paso JAR personalizado
Un JAR personalizado ejecuta un programa Java compilado que carga en Amazon S3. Debería compilar el programa en comparación con la versión de Hadoop que desee lanzar y envíe un paso CUSTOM_JAR
a su clúster de Amazon EMR. Para más información sobre la compilación de un archivo JAR, consulte Creación de binarios con Amazon EMR.
Para obtener más información sobre cómo crear una MapReduce aplicación de Hadoop, consulte el MapReduce tutorial
En esta sección se describen los conceptos básicos de enviar un paso JAR personalizado en Amazon EMR. Enviar un paso JAR personalizado le permite escribir un script para procesar los datos mediante el lenguaje de programación Java.
Enviar un paso JAR personalizado mediante la consola
En este ejemplo se describe cómo utilizar la consola de Amazon EMR para enviar un paso JAR personalizado a un clúster en ejecución.
Para enviar un paso JAR personalizado mediante la consola
Abra la consola Amazon EMR en https://console.aws.amazon.com /emr.
-
En la Cluster List (Lista de clústeres), seleccione el nombre del clúster.
-
Desplácese hasta la sección Steps (Pasos) y amplíela; a continuación, elija Add step (Añadir paso).
-
En el cuadro de diálogo Add Step (Añadir paso):
-
En Step type (Tipo de paso), elija Custom JAR (JAR personalizado).
-
En Name (Nombre), acepte el nombre predeterminado, Custom JAR (JAR personalizado), o escriba un nombre nuevo.
-
En JAR S3 location (Ubicación en S3 del JAR), escriba o busque la ubicación del archivo JAR. La ubicación del JAR puede ser una ruta hacia S3 o una clase java totalmente calificada en la classpath.
-
En Arguments (Argumentos), escriba los argumentos necesarios como cadenas separadas por espacios o deje el campo en blanco.
-
En Action on failure (Acción sobre el error), acepte la opción predeterminada, Continue (Continuar).
-
-
Elija Agregar. El paso aparece en la consola con el estado Pending (Pendiente).
-
El estado del paso cambia de Pending (Pendiente) a Running (En ejecución) y a Completed (Completado) a medida que se ejecuta. Para actualizar el estado, elija el icono Refresh (Actualizar) situado encima de la columna Actions (Acciones).
Lanzar un clúster y enviar un paso JAR personalizado con el AWS CLI
Para lanzar un clúster y enviar un paso JAR personalizado con el AWS CLI
Para lanzar un clúster y enviar un paso JAR personalizado con el AWS CLI, escriba el create-cluster
subcomando con el --steps
parámetro.
-
Para lanzar un clúster y enviar un paso JAR personalizado, escriba el siguiente comando,
myKey
sustitúyalo por el nombre del EC2 key pair yamzn-s3-demo-bucket
sustitúyalo por el nombre del bucket.aws emr create-cluster --name "
Test cluster
" --release-labelemr-7.6.0
\ --applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
\ --steps Type=CUSTOM_JAR
,Name="Custom JAR Step
",ActionOnFailure=CONTINUE
,Jar=pathtojarfile
,Args=["pathtoinputdata
","pathtooutputbucket
","arg1
","arg2
"]nota
Se incluyen caracteres de continuación de línea de Linux (\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).
Cuando especifica el recuento de instancias sin utilizar el parámetro
--instance-groups
, se inicia un nodo principal único y el resto de las instancias se inician como nodos básicos. Todos los nodos utilizan el tipo de instancia que especifica en el comando.nota
Si no ha creado anteriormente el rol de servicio Amazon EMR y el perfil de EC2 instancia predeterminados, escriba
aws emr create-default-roles
para crearlos antes de escribir elcreate-cluster
subcomando.Para obtener más información sobre el uso de los comandos de Amazon EMR en AWS CLI, consulte. https://docs.aws.amazon.com/cli/latest/reference/emr
Dependencias de terceros
A veces puede ser necesario incluirlo en la MapReduce ruta de clases JARs para usarlo con el programa. Dispone de dos opciones para hacerlo:
-
Incluir el paso
--libjars s3://
en las opciones de paso para el procedimiento en Lanzar un clúster y enviar un paso JAR personalizado con el AWS CLI.URI_to_JAR
-
Lance el clúster con una configuración
mapreduce.application.classpath
modificada enmapred-site.xml
. Utilice la clasificación de configuraciónmapred-site
. Para crear el clúster siguiendo el paso siguiente AWS CLI, tendría el siguiente aspecto:aws emr create-cluster --release-label
emr-7.6.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/amzn-s3-demo-bucket/myfolder/myConfig.jsonmyConfig.json
:[ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "
path1
,path2
" } } ]La lista de rutas separadas por comas se debe adjuntar al classpath para el JVM de cada tarea.