

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

# 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"
```