Envíe un paso personalizado JAR - Amazon EMR

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 de Apache Hadoop.

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
  1. Abre la EMR consola de Amazon en https://console.aws.amazon.com/emr.

  2. En la Cluster List (Lista de clústeres), seleccione el nombre del clúster.

  3. Desplácese hasta la sección Steps (Pasos) y amplíela; a continuación, elija Add step (Añadir paso).

  4. 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).

  5. Elija Añadir. El paso aparece en la consola con el estado Pending (Pendiente).

  6. 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 sustituya mybucket con el nombre de tu bucket.

    aws emr create-cluster --name "Test cluster" --release-label emr-7.2.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --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 el create-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://URI_to_JAR en las opciones de paso para el procedimiento en Lanzar un clúster y enviar un JAR paso personalizado con el AWS CLI.

  • Lance el clúster con una configuración mapreduce.application.classpath modificada en mapred-site.xml. Utilice la clasificación de configuración mapred-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.json

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