Enviar trabajo de Pig - Amazon EMR

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 de Amazon EMR enhttps://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. Seleccione 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í.

Enviar un trabajo de Pig mediante la AWS CLI

Para enviar un paso de Pig utilizando la AWS CLI

Cuando lance un clúster utilizando la AWS CLI, utilice el parámetro --applications 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 y sustituya myKey y amzn-s3-demo-bucket/ por el nombre de su par de claves de EC2 y 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 con anterioridad el rol de servicio de EMR predeterminado y el perfil de instancia de EC2, escriba aws emr create-default-roles para crearlos antes de escribir el subcomando create-cluster.

  2. Para enviar un paso de Pig, introduzca el siguiente comando y reemplace myClusterID y amzn-s3-demo-bucket por el ID y el nombre del clúster de su 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 acerca de los comandos de Amazon EMR en la AWS CLI, consulte la Referencia de los comandos de la AWS CLI.