Enviar uma etapa de JAR personalizado - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Enviar uma etapa de JAR personalizado

Um JAR personalizado executa um programa Java compilado que você pode carregar no Amazon S3. Você deve compilar o programa com base na versão do Hadoop que você deseja iniciar e enviar uma etapa CUSTOM_JAR ao cluster do Amazon EMR. Para obter mais informações sobre como compilar um arquivo JAR, consulte Criar binários usando o Amazon EMR.

Para obter mais informações sobre a criação de um MapReduce aplicativo Hadoop, consulte o MapReduce Tutorial na documentação do Apache Hadoop.

Esta seção aborda os conceitos básicos do envio de uma etapa de JAR personalizado no Amazon EMR. O envio de uma etapa de JAR personalizado permite a gravação de um script para processar dados usando a linguagem de programação Java.

Enviar uma etapa de JAR personalizado usando o console

Este exemplo descreve como usar o console do Amazon EMR para enviar uma etapa de JAR personalizado a um cluster em execução.

Enviar uma etapa de JAR personalizado usando o console
  1. Abra o console do Amazon EMR em https://console.aws.amazon.com /emr.

  2. Em Cluster List (Lista de clusters), selecione o nome do cluster.

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

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

    • Para Step type (Tipo de etapa), escolha Custom JAR (JAR personalizado).

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

    • Para JAR S3 location (Localização do S3 JAR), digite a localização do seu arquivo JAR ou navegue até ela. A localização do JAR pode ser um caminho para o S3 ou uma classe java totalmente qualificada no caminho de classe.

    • Para Arguments (Argumentos), digite argumentos necessários como strings separadas por espaços ou deixe o campo em branco.

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

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

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

Iniciando um cluster e enviando uma etapa JAR personalizada com o AWS CLI

Para iniciar um cluster e enviar uma etapa JAR personalizada com o AWS CLI

Para iniciar um cluster e enviar uma etapa JAR personalizada com o AWS CLI, digite o create-cluster subcomando com o --steps parâmetro.

  • Para iniciar um cluster e enviar uma etapa JAR personalizada, digite o comando a seguir, myKey substitua pelo nome do seu EC2 key pair e amzn-s3-demo-bucket substitua pelo nome do bucket.

    aws emr create-cluster --name "Test cluster" --release-label emr-7.6.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

    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ó primário é iniciado e as instâncias restantes são iniciadas como nós centrais. Todos os nós usam o tipo de instância que você especifica no comando.

    nota

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

    Para obter mais informações sobre o uso dos comandos do Amazon EMR no AWS CLI, consulte. https://docs.aws.amazon.com/cli/latest/reference/emr

Dependências de terceiros

Às vezes, pode ser necessário incluir no MapReduce classpath JARs para uso com seu programa. Existem duas opções para fazer isso:

  • Inclua o --libjars s3://URI_to_JAR nas opções da etapa para o procedimento em Iniciando um cluster e enviando uma etapa JAR personalizada com o AWS CLI.

  • Inicie o cluster com uma configuração mapreduce.application.classpath modificada em mapred-site.xml. Use a classificação para a configuração mapred-site. Para criar o cluster com a etapa usando AWS CLI, isso teria a seguinte aparência:

    aws emr create-cluster --release-label emr-7.6.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/amzn-s3-demo-bucket/myfolder/myConfig.json

    myConfig.json:

    [ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "path1,path2" } } ]

    A lista separada por vírgulas de caminhos deve ser acrescentada ao classpath da JVM de cada tarefa.