Enviar trabajo de Pig - 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.

Enviar trabajo de Pig

En esta sección, se muestra el envío de un trabajo de Pig a un clúster de Amazon EMR. En los ejemplos siguientes se genera un informe que contiene el total de bytes transferidos, una lista de las 50 direcciones IP principales, una lista de los 50 remitentes externos principales y los 50 términos de búsqueda principales con Bing y Google. El script de Pig se encuentra en el bucket de Amazon S3 s3://elasticmapreduce/samples/pig-apache/do-reports2.pig. Los datos de entrada se encuentran en el bucket s3://elasticmapreduce/samples/pig-apache/input de Amazon S3. La salida se guarda en un bucket de Amazon S3.

Enviar trabajo de Pig mediante la consola de Amazon EMR

En este ejemplo, se describe cómo utilizar la consola de Amazon EMR para agregar un paso de Pig a un clúster.

Para enviar un paso de Pig
  1. Abra la consola Amazon EMR en https://console.aws.amazon.com /emr.

  2. Elija Crear clúster para crear un clúster con Pig instalado. Para obtener información sobre cómo crear un clúster, consulte Planificar y configurar un clúster de Amazon EMR.

  3. Para abrir un terminal y SSH en el nodo maestro del clúster, siga los pasos descritos en Conexión al nodo maestro mediante SSH. Una vez hecho esto, ejecute los siguientes pasos.

    sudo mkdir -p /home/hadoop/lib/pig/ sudo aws s3 cp s3://elasticmapreduce/libs/pig/0.3/piggybank-0.3-amzn.jar /home/hadoop/lib/pig/piggybank.jar
  4. En la consola, haga clic en Lista de clústeres y seleccione el nombre del clúster que ha creado.

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

  6. En el cuadro de diálogo Add Step (Añadir paso):

    • En Step type (Tipo de paso), elija Pig program (Programa de Pig).

    • En Name (Nombre), acepte el nombre predeterminado (Programa de Pig) o escriba un nombre nuevo.

    • En Script S3 location (Ubicación en S3 del script), escriba la ubicación del script de Pig. Por ejemplo: s3://elasticmapreduce/samples/pig-apache/do-reports2.pig.

    • En Input S3 location (Ubicación en S3 de la entrada), escriba la ubicación de los datos de entrada. Por ejemplo: s3://elasticmapreduce/samples/pig-apache/input.

    • En Ubicación en S3 de la salida, escriba o busque el nombre del bucket de salida de Amazon S3.

    • En Arguments (Argumentos), deje el campo en blanco.

    • En Action on failure (Acción sobre el error), acepte la opción predeterminada, Continue (Continuar).

  7. Elija Agregar. El paso aparece en la consola con el estado Pending (Pendiente).

  8. 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). Cuando haya completado el paso, compruebe su bucket de Amazon S3 para confirmar que los archivos de salida de su paso de Pig estén ahí.

Envíe el trabajo de Pig mediante el AWS CLI

Para enviar un Pig, haga clic en AWS CLI

Cuando lance un clúster mediante AWS CLI, utilice el --applications parámetro para instalar Pig. Para enviar un paso de Pig, utilice el parámetro --steps.

  1. Para lanzar un clúster con Pig instalado, escriba el siguiente comando myKey y sustituya y amzn-s3-demo-bucket/ por el nombre del EC2 key pair y del bucket de Amazon S3.

    aws emr create-cluster \ --name "Test cluster" \ --log-uri s3://amzn-s3-demo-bucket/ \ --release-label emr-5.36.2 \ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey \ --instance-type m5.xlarge \ --instance-count 3
    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 lanza un nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos los nodos utilizan el tipo de instancia especificado en el comando.

    nota

    Si no ha creado anteriormente el rol de servicio EMR y el perfil de EC2 instancia predeterminados, escriba aws emr create-default-roles para crearlos antes de escribir el create-cluster subcomando.

  2. Para enviar un paso Pig, introduce el siguiente comando, sustituyendo myClusterId y amzn-s3-demo-bucket por tu ID de clúster y el nombre de tu bucket de Amazon S3.

    aws emr add-steps \ --cluster-id myClusterId \ --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://amzn-s3-demo-bucket/pig-apache/output]

    Este comando devolverá un ID de paso, que puede usar para comprobar el State de su paso.

  3. Consulte el estado del paso con el comando describe-step.

    aws emr describe-step --cluster-id myClusterId --step-id s-1XXXXXXXXXXA

    A medida que el paso se ejecuta, el State cambia de PENDING a RUNNING a COMPLETED. Cuando haya completado el paso, compruebe su bucket de Amazon S3 para confirmar que los archivos de salida de su paso de Pig estén ahí.

Para obtener más información sobre el uso de los comandos de Amazon EMR en AWS CLI, consulte la Referencia de AWS CLI comandos.