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.
Envíe un paso personalizado JAR
Una aplicación personalizada JAR ejecuta un programa Java compilado que puede cargar en Amazon S3. Debes compilar el programa con la versión de Hadoop que deseas lanzar y enviar un CUSTOM_JAR
paso a tu clúster de AmazonEMR. Para obtener más información sobre cómo compilar un JAR archivo, consulte. Crear 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 la documentación
En esta sección se describen los aspectos básicos del envío de un JAR paso personalizado en AmazonEMR. Enviar un JAR paso personalizado te permite escribir un script para procesar tus datos con el lenguaje de programación Java.
Envíe un JAR paso personalizado con la consola
En este ejemplo se describe cómo usar la EMR consola de Amazon para enviar un JAR paso personalizado a un clúster en ejecución.
Para enviar un JAR paso personalizado con la consola
Abre la EMR consola de Amazon 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 Tipo de paso, selecciona Personalizado JAR.
-
En Nombre, acepte el nombre predeterminado (personalizadoJAR) o escriba uno nuevo.
-
Para la ubicación JAR S3, escriba o busque la ubicación del JAR archivo. JARla ubicación puede ser una ruta a S3 o una clase java totalmente cualificada en la ruta de clases.
-
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 Añadir. 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 JAR paso personalizado con el AWS CLI
Para lanzar un clúster y enviar un JAR paso personalizado con el AWS CLI
Para lanzar un clúster y enviar un JAR paso personalizado con el AWS CLI, escriba el create-cluster
subcomando con el --steps
parámetro.
-
Para lanzar un clúster y enviar un JAR paso personalizado, escriba el siguiente comando, sustituya
myKey
con el nombre de su EC2 key pair y sustituyamybucket
con el nombre de tu bucket.aws emr create-cluster --name "
Test cluster
" --release-labelemr-7.2.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 has creado previamente el rol de EMR servicio de Amazon y el perfil de EC2 instancia predeterminados, escribe
aws emr create-default-roles
para crearlos antes de escribir elcreate-cluster
subcomando.Para obtener más información sobre el uso de EMR los comandos de Amazon en AWS CLI, consultehttps://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 JAR paso 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.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.jsonmyConfig.json
:[ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "
path1
,path2
" } } ]La lista de rutas separadas por comas debe añadirse a la JVM ruta de clases de cada tarea.