Enviar um trabalho do Pig - Amazon EMR

Enviar um trabalho do Pig

Esta seção demonstra como enviar trabalhos do Pig para um cluster do Amazon EMR. Os exemplos a seguir geram um relatório contendo o total de bytes transferidos, uma lista dos 50 principais endereços IP, uma lista dos 50 principais indicadores externos e os 50 principais termos de pesquisa usando o Bing e o Google. O script do Pig está localizado no bucket s3://elasticmapreduce/samples/pig-apache/do-reports2.pig do Amazon S3. Os dados de entrada estão localizados no bucket s3://elasticmapreduce/samples/pig-apache/input do Amazon S3. Os dados de saída são salvos em um bucket do Amazon S3.

Enviar trabalhos do Pig usando o console do Amazon EMR

Este exemplo descreve como usar o console do Amazon EMR para adicionar uma etapa do Pig a um cluster.

Para enviar uma etapa do Pig
  1. Abra o console do Amazon EMR em https://console.aws.amazon.com/emr.

  2. Escolha Criar cluster para criar um cluster com o Pig instalado. Para conhecer as etapas sobre como criar um cluster, consulte Planejar e configurar um cluster do Amazon EMR.

  3. Abra um terminal e use SSH no nó principal do cluster seguindo as etapas descritas em Conectar-se ao nó principal usando SSH. Depois de fazer isso, execute as etapas a seguir.

    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. No console, clique em Lista de clusters e selecione o nome do cluster que você criou.

  5. Role até a seção Steps (Etapas) e expanda-a. Em seguida, escolha Add step (Adicionar etapa).

  6. Na caixa de diálogo Add Step (Adicionar etapa):

    • Para Step type (Tipo de etapa), escolha Pig program (Programa Pig).

    • Para Name (Nome), aceite o nome padrão (programa Pig) ou digite um novo nome.

    • Para Script S3 location (Local do script do S3), digite o local do script do Pig. Por exemplo: s3://elasticmapreduce/samples/pig-apache/do-reports2.pig.

    • Para Input S3 location (Local de entrada do S3), digite o local dos dados de entrada. Por exemplo: s3://elasticmapreduce/samples/pig-apache/input.

    • Em Local de saída do S3, digite ou navegue até o nome do bucket de saída do Amazon S3.

    • Para Arguments (Argumentos), deixe o campo em branco.

    • Para Action on failure (Ação na falha), aceite a opção padrão Continue (Continuar).

  7. Escolha Adicionar. A etapa é exibida no console com o status Pendente.

  8. O status da etapa muda de Pending (Pendente) para Running (Em execução) e depois para Completed (Concluído) conforme ela é executada. Para atualizar o status, escolha o ícone Refresh (Atualizar) acima da coluna Actions (Ações). Quando sua etapa estiver concluída, verifique o bucket do Amazon S3 para confirmar se os arquivos de saída da etapa do Pig estão lá.

Enviar trabalhos do Pig usando a AWS CLI

Para enviar uma etapa do Pig usando a AWS CLI

Ao executar um cluster usando a AWS CLI, use o parâmetro --applications para instalar o Pig. Para enviar uma etapa do Pig, use o parâmetro --steps.

  1. Para iniciar um cluster com o Pig instalado, digite o comando a seguir, substituindo myKey e amzn-s3-demo-bucket/ pelo nome do par de chaves do EC2 e do bucket do 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

    Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

    Quando você especifica a contagem de instâncias sem usar o parâmetro --instance-groups, um único nó principal é executado, e as instâncias restantes são executadas como nós core. Todos os nós usam o tipo de instância especificado no comando.

    nota

    Se você não tiver criado o perfil de serviço padrão do EMR e o perfil de instância do EC2, digite aws emr create-default-roles para criá-los antes de digitar o subcomando create-cluster.

  2. Para enviar uma etapa do Pig, digite o comando a seguir, substituindo myClusterId e amzn-s3-demo-bucket pelo ID do cluster e pelo nome do bucket do 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]

    Esse comando retornará um ID de etapa, que você pode usar para verificar o State da sua etapa.

  3. Consulte o status da sua etapa com o comando describe-step.

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

    O State da etapa é alterado de PENDING para RUNNING e para COMPLETED, conforme a etapa é executada. Quando sua etapa estiver concluída, verifique o bucket do Amazon S3 para confirmar se os arquivos de saída da etapa do Pig estão lá.

Para obter mais informações sobre o uso de comandos do Amazon EMR na AWS CLI, consulte AWS CLI Command Reference.