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
Abra o console do Amazon EMR em https://console.aws.amazon.com/emr
. -
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.
-
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
-
No console, clique em Lista de clusters e selecione o nome do cluster que você criou.
-
Role até a seção Steps (Etapas) e expanda-a. Em seguida, escolha Add step (Adicionar etapa).
-
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).
-
-
Escolha Adicionar. A etapa é exibida no console com o status Pendente.
-
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
.
-
Para iniciar um cluster com o Pig instalado, digite o comando a seguir, substituindo
myKey
eamzn-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-labelemr-5.36.2
\ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey
\ --instance-typem5.xlarge
\ --instance-count3
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 subcomandocreate-cluster
. -
Para enviar uma etapa do Pig, digite o comando a seguir, substituindo
myClusterId
eamzn-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. -
Consulte o status da sua etapa com o comando
describe-step
.aws emr describe-step --cluster-id
myClusterId
--step-ids-1XXXXXXXXXXA
O
State
da etapa é alterado dePENDING
paraRUNNING
e paraCOMPLETED
, 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.