

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
<a name="emr-launch-custom-jar-cli"></a>

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](emr-build-binaries.md).

Para obter mais informações sobre a criação de um MapReduce aplicativo Hadoop, consulte o [MapReduce Tutorial](http://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) 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
<a name="ConsoleCreatingaCustomJARJob"></a>

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.](https://console.aws.amazon.com/emr/)

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

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

1. 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)**.

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

1. 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
<a name="emr-dev-create-jar-cli"></a>

**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 key pair do EC2 e {{amzn-s3-demo-bucket}} substitua pelo nome do bucket.

  ```
  aws emr create-cluster --name "{{Test cluster}}" --release-label {{emr-7.13.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ê não tiver criado anteriormente o perfil de serviço do Amazon EMR padrão e o perfil de instância do EC2, 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](https://docs.aws.amazon.com/cli/latest/reference/emr)

## Dependências de terceiros
<a name="emr-custom-jar-dependency"></a>

À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](#emr-dev-create-jar-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.13.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.