

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á.

# Configuração de aplicações ao iniciar o cluster do Amazon EMR
<a name="emr-plan-software"></a>

Quando você seleciona uma versão de software, o Amazon EMR usa uma Imagem de máquina da Amazon (AMI) com o Amazon Linux para instalar o software que você escolhe ao iniciar seu cluster, como o Hadoop, o Spark e o Hive. O Amazon EMR fornece novas versões regularmente, adicionando novos atributos, novas aplicações e atualizações gerais. Recomendamos que você use a versão mais recente para executar seu cluster, sempre que possível. A versão mais recente é a opção padrão quando você executa um cluster a partir do console. 

Para obter mais informações sobre as versões do Amazon EMR e as versões de software disponíveis em cada versão, consulte o [Guia de lançamento do Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). Para obter mais informações sobre como editar as configurações padrão de aplicações e softwares instalados no cluster, consulte [Configuring applications](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html) no Guia de lançamento do Amazon EMR. Algumas versões dos componentes do ecossistema de código aberto do Hadoop e do Spark incluídas nas versões do Amazon EMR têm patches e melhorias, que estão documentados no [Guia de lançamento do Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).

 Além do software padrão e dos aplicativos que estão disponíveis para instalação no seu cluster, você pode usar ações de bootstrap para instalar softwares personalizados. As ações de bootstrap são scripts executados nas instâncias quando o cluster é executado, e que são executados nos novos nós adicionados ao seu cluster quando eles são criados. As ações de bootstrap também são úteis para invocar AWS CLI comandos em cada nó para copiar objetos do Amazon S3 para cada nó em seu cluster. 

**nota**  
 As ações de bootstrap são usadas de forma diferente no Amazon EMR versão 4.x e posteriores. Para obter mais informações sobre as diferenças das versões 2.x e 3.x da AMI do Amazon EMR, consulte [Differences introduced in 4.x](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-differences.html) no Guia de lançamento do Amazon EMR. 

# Como criar ações de bootstrap para instalar softwares adicionais com um cluster do Amazon EMR
<a name="emr-plan-bootstrap"></a>

Você pode usar uma *ação de bootstrap* para instalar softwares adicionais ou personalizar a configuração de instâncias de cluster. As ações de bootstrap são scripts que são executados no cluster depois que o Amazon EMR inicia a instância usando a imagem de máquina da Amazon (AMI) do Amazon Linux. As ações de bootstrap são executadas antes que o Amazon EMR instale as aplicações que você especifica ao criar o cluster e antes que os nós de cluster comecem o processamento de dados. Se você adicionar nós a um cluster em execução, as ações de bootstrap também serão executadas nesses nós da mesma forma. É possível criar ações de bootstrap personalizadas e especificá-las ao criar seu cluster. 

A maioria das ações de bootstrap predefinidas para a AMI do Amazon EMR versões 2.x e 3.x não tem suporte no Amazon EMR versões 4.x. Por exemplo, `configure-Hadoop` e `configure-daemons` não são compatíveis com o Amazon EMR versão 4.x. Em vez disso, o Amazon EMR versão 4.x fornece essa funcionalidade nativamente. Para obter mais informações sobre como migrar ações de bootstrap das versões 2.x e 3.x da AMI do Amazon EMR para a versão 4.x do Amazon EMR, acesse [Personalizar configuração de clusters e aplicações com versões anteriores da AMI do Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-3x-customizeappconfig.html) no Guia de lançamento do Amazon EMR.

## Noções básicas sobre ações de bootstrap
<a name="bootstrapUses"></a>

Ações de bootstrap são executadas como o usuário do Hadoop por padrão. Você pode executar uma ação de bootstrap com privilégios de root usando `sudo`. 

Todas as interfaces de gerenciamento do Amazon EMR dão suporte a ações de bootstrap. Você pode especificar até 16 ações de bootstrap por cluster fornecendo vários `bootstrap-actions` parâmetros do console ou da API. AWS CLI

No console do Amazon EMR, existe a opção de especificar uma ação de bootstrap ao criar um cluster.

Ao usar a CLI, você pode transmitir referências a scripts de ação de bootstrap ao Amazon EMR, adicionando o parâmetro `--bootstrap-actions` ao criar o cluster usando o comando `create-cluster`.

```
--bootstrap-actions Path="s3://amzn-s3-demo-bucket/filename",Args=[arg1,arg2]
```

Se a ação de bootstrap retornar um código de erro diferente de zero, o Amazon EMR a tratará como uma falha e terminará a instância. Se muitas instâncias falharem em suas ações de bootstrap, o Amazon EMR terminará o cluster. Se apenas algumas instâncias falharem, o Amazon EMR tentará realocar as instâncias com falha e continuar. Use o código de erro de cluster `lastStateChangeReason` para identificar falhas causadas por uma ação de bootstrap.

## Executar uma ação de bootstrap condicionalmente
<a name="emr-bootstrap-runif"></a>

Para executar apenas ações de bootstrap no nó principal, você pode usar uma ação de bootstrap personalizada com um pouco de lógica para determinar se o nó é principal.

```
#!/bin/bash
if grep isMaster /mnt/var/lib/info/instance.json | grep false;
then        
    echo "This is not master node, do nothing,exiting"
    exit 0
fi
echo "This is master, continuing to execute script"
# continue with code logic for master node below
```

A saída a seguir será impressa de um nó central.

```
This is not master node, do nothing, exiting
```

A saída a seguir será impressa de um nó principal.

```
This is master, continuing to execute script
```

Para usar essa lógica, carregue a ação de bootstrap, incluindo o código acima, no bucket do Amazon S3. No AWS CLI, adicione o `--bootstrap-actions` parâmetro à chamada da `aws emr create-cluster` API e especifique a localização do script de bootstrap como o valor de`Path`. 

## Ações de desligamento
<a name="bootstrap_Shutown"></a>

Um script de ação de bootstrap pode criar uma ou mais ações de desligamento, escrevendo scripts no diretório `/mnt/var/lib/instance-controller/public/shutdown-actions/`. Quando um cluster é encerrado, todos os scripts nesse diretório são executados em paralelo. Cada script deve ser executado e concluído em até 60 segundos. 

Scripts de ação de desligamento não terão garantia de execução se o nó for encerrado com um erro. 

**nota**  
Ao usar o Amazon EMR 4.0 e versões posteriores, você deve criar manualmente o diretório `/mnt/var/lib/instance-controller/public/shutdown-actions/` no nó principal. Ele não existe por padrão. No entanto, depois de serem criados, os scripts nesse diretório são executados antes do desligamento. Para obter mais informações sobre como conectar-se ao nó principal para criar diretórios, consulte [Como se conectar ao nó primário do cluster do Amazon EMR usando SSH](emr-connect-master-node-ssh.md).

## Usar ações de bootstrap personalizadas
<a name="bootstrapCustom"></a>

Você pode criar um script personalizado para executar uma ação de bootstrap personalizada. Qualquer uma das interfaces do Amazon EMR pode referenciar uma ação de bootstrap personalizada.

**nota**  
Para obter o melhor desempenho, recomendamos que você armazene ações de bootstrap, scripts e outros arquivos personalizados que você deseja usar com o Amazon EMR em um bucket do Amazon S3 que esteja no Região da AWS mesmo que seu cluster.

**Topics**
+ [Adicionar ações de bootstrap personalizadas](#custom-bootstrap)
+ [Usar uma ação de bootstrap personalizada para copiar um objeto do Amazon S3 para cada nó](#CustomBootstrapCopyS3Object)

### Adicionar ações de bootstrap personalizadas
<a name="custom-bootstrap"></a>

------
#### [ Console ]

**Para criar um cluster com uma ação de bootstrap usando o console**

1. [Faça login no e abra Console de gerenciamento da AWS o console do Amazon EMR em https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. Em **EMR no EC2**, no painel de navegação esquerdo, escolha **Clusters** e depois **Criar cluster**.

1. Em **Ações de bootstrap**, escolha **Adicionar** para especificar um nome, um local do script e os argumentos opcionais para a ação. Selecione **Adicionar ação de bootstrap**.

1. Opcionalmente, adicione mais ações de bootstrap.

1. Escolha qualquer outra opção que se aplique ao cluster. 

1. Para iniciar o cluster, escolha **Criar cluster**.

------
#### [ CLI ]

**Para criar um cluster com uma ação de bootstrap personalizada com o AWS CLI**

Ao usar a ação AWS CLI para incluir uma ação de bootstrap, especifique `Path` e `Args` como uma lista separada por vírgulas. O exemplo a seguir não usa uma lista de argumentos.
+ Para iniciar um cluster com uma ação de bootstrap personalizada, digite o comando a seguir, *myKey* substituindo-o pelo nome do seu par de chaves do EC2. Inclua `--bootstrap-actions` como parâmetro e especifique o local do script de bootstrap como o valor de `Path`.
  + Usuários do Linux, do UNIX e do Mac OS X:

    ```
    1. aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 \
    2. --use-default-roles --ec2-attributes KeyName=myKey \
    3. --applications Name=Hive Name=Pig \
    4. --instance-count 3 --instance-type m5.xlarge \
    5. --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"
    ```
  + Usuários do Windows:

    ```
    1. aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --use-default-roles --ec2-attributes KeyName=myKey --applications Name=Hive Name=Pig --instance-count 3 --instance-type m5.xlarge --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"
    ```

  Quando você especifica a contagem de instâncias sem usar o parâmetro `--instance-groups`, um único nó primário é executado, e as instâncias restantes são executadas como nós centrais. Todos os nós usarão o tipo de instância especificado 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)

------

### Usar uma ação de bootstrap personalizada para copiar um objeto do Amazon S3 para cada nó
<a name="CustomBootstrapCopyS3Object"></a>

Você pode usar uma ação de bootstrap para copiar objetos do Amazon S3 para cada nó no cluster antes que suas aplicações sejam instaladas. O AWS CLI é instalado em cada nó de um cluster, para que sua ação de bootstrap possa chamar AWS CLI comandos.

O exemplo a seguir demonstra um script de ação de bootstrap simples que copia um arquivo, `myfile.jar`, do Amazon S3 para uma pasta local, `/mnt1/myfolder`, em cada nó do cluster. O script é salvo no Amazon S3 com o nome de arquivo `copymyfile.sh` com os conteúdos a seguir.

```
#!/bin/bash
aws s3 cp s3://amzn-s3-demo-bucket/myfilefolder/myfile.jar /mnt1/myfolder
```

Ao iniciar o cluster, você especifica o script. O AWS CLI exemplo a seguir demonstra isso:

```
aws emr create-cluster --name "Test cluster" --release-label emr-7.12.0 \
--use-default-roles --ec2-attributes KeyName=myKey \
--applications Name=Hive Name=Pig \
--instance-count 3 --instance-type m5.xlarge \
--bootstrap-actions Path="s3://amzn-s3-demo-bucket/myscriptfolder/copymyfile.sh"
```