

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

# Integração do Amazon EMR com grupos de posicionamento do EC2
<a name="emr-plan-ha-placementgroup"></a>

Ao iniciar um cluster de múltiplos nós primários do Amazon EMR no Amazon EC2, você tem a opção de usar estratégias de grupos de posicionamento para especificar como deseja que as instâncias do nó primário sejam implantadas para se protegerem contra falhas de hardware.

Há suporte para estratégias de grupos de posicionamento a partir do Amazon EMR versão 5.23.0 como uma opção para clusters com múltiplos nós primários. Atualmente, somente os tipos de nós primários são compatíveis com a estratégia de grupo de posicionamento, e a estratégia `SPREAD` é aplicada a estes nós primários. A estratégia `SPREAD` posiciona um pequeno grupo de instâncias em um hardware subjacente separado para evitar a perda de múltiplos nós primários em caso de falha de hardware. Uma solicitação de inicialização de instância poderá falhar se não houver hardware exclusivo suficiente para atender à solicitação. Para obter mais informações sobre as estratégias e limitações de posicionamento do EC2, consulte [Grupos de posicionamento](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) no *Guia do usuário do EC2 para instâncias do Linux.*

Há um limite inicial do Amazon EC2 de 500 clusters habilitados para estratégias de grupos de posicionamento que podem ser lançados por região. AWS Entre em contato com o AWS suporte para solicitar um aumento no número de grupos de colocação permitidos. É possível identificar os grupos de posicionamento do EC2 que o Amazon EMR cria rastreando o par de chave-valor que o Amazon EMR associa à estratégia de grupos de posicionamento do Amazon EMR. Para obter mais informações sobre etiquetas de instância de cluster do EC2, consulte [Visualizar instâncias de cluster no Amazon EC2](UsingEMR_Tagging.md).

## Anexe a política gerenciada do grupo de colocação à Amazon EMRrole
<a name="emr-plan-ha-launch-pg-policy"></a>

A estratégia de grupos de posicionamento exige uma política gerenciada chamada `AmazonElasticMapReducePlacementGroupPolicy`. Com ela, o Amazon EMR pode criar, excluir e descrever grupos de posicionamento no Amazon EC2. É necessário anexar `AmazonElasticMapReducePlacementGroupPolicy` ao perfil de serviço do Amazon EMR antes de executar um cluster do Amazon EMR com vários nós primários. 

Como alternativa, você pode anexar a política gerenciada `AmazonEMRServicePolicy_v2` ao perfil de serviço do Amazon EMR em vez da política gerenciada de grupo de posicionamento. `AmazonEMRServicePolicy_v2` e `AmazonElasticMapReducePlacementGroupPolicy` permitem os mesmos acessos a grupos de posicionamento no Amazon EC2. Para obter mais informações, consulte [Perfil de serviço para Amazon EMR (perfil do EMR)](emr-iam-role.md).

A política gerenciada `AmazonElasticMapReducePlacementGroupPolicy` é o texto JSON a seguir criado e administrado pelo Amazon EMR.

**nota**  
Como a política `AmazonElasticMapReducePlacementGroupPolicy` gerenciada é atualizada automaticamente, a política mostrada aqui pode ser out-of-date. Use o AWS Management Console para visualizar a política atual.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Resource": [
        "*"
      ],
      "Effect": "Allow",
      "Action": [
        "ec2:DeletePlacementGroup",
        "ec2:DescribePlacementGroups"
      ],
      "Sid": "AllowEC2Deleteplacementgroup"
    },
    {
      "Resource": [
        "arn:aws:ec2:*:*:placement-group/pg-*"
      ],
      "Effect": "Allow",
      "Action": [
        "ec2:CreatePlacementGroup"
      ],
      "Sid": "AllowEC2Createplacementgroup"
    }
  ]
}
```

------

## Execução de um cluster do Amazon EMR com vários nós primários usando estratégia de grupos de posicionamento
<a name="emr-plan-ha-launch-pg-strategy"></a>

Para executar um cluster do Amazon EMR com vários nós primários usando uma estratégia de grupos de posicionamento, anexe a política gerenciada de grupos de posicionamento `AmazonElasticMapReducePlacementGroupPolicy` ao perfil do Amazon EMR. Para obter mais informações, consulte [Anexe a política gerenciada do grupo de colocação à Amazon EMRrole](#emr-plan-ha-launch-pg-policy).

Toda vez que você usa esse perfil para iniciar um cluster do Amazon EMR com vários nós primários, o Amazon EMR tenta executar um cluster com a estratégia `SPREAD` aplicada aos nós primários. Se você usar um perfil que não tenha a política gerenciada de grupos de posicionamento `AmazonElasticMapReducePlacementGroupPolicy` anexada, o Amazon EMR tentará executar um cluster do Amazon EMR com vários nós primários sem uma estratégia de grupos de posicionamento.

Se você iniciar um cluster do Amazon EMR que tenha vários nós primários com o `placement-group-configs` parâmetro usando o Amazon EMRAPI ou a CLI, o Amazon EMR só iniciará o cluster se a Amazon tiver a política gerenciada por grupos de EMRrole posicionamento anexada. `AmazonElasticMapReducePlacementGroupPolicy` Se a Amazon EMRrole não tiver a política anexada, o cluster do Amazon EMR com vários nós primários iniciados falhará.

------
#### [ Amazon EMR API ]

**Example Exemplo: usar uma estratégia de grupos de posicionamento para executar um cluster de grupos de instâncias com vários nós primários da API do Amazon EMR**  
Ao usar a RunJobFlow ação para criar um cluster do Amazon EMR com vários nós primários, defina a `PlacementGroupConfigs` propriedade da seguinte forma. Atualmente, o perfil de instância `MASTER` usa automaticamente `SPREAD` como estratégia de grupo de posicionamento.  

```
{
   "Name":"ha-cluster",
   "PlacementGroupConfigs":[
      {
         "InstanceRole":"MASTER"
      }
   ],
   "ReleaseLabel": emr-6.15.0,
   "Instances":{
      "ec2SubnetId":"subnet-22XXXX01",
      "ec2KeyName":"ec2_key_pair_name",
      "InstanceGroups":[
         {
            "InstanceCount":3,
            "InstanceRole":"MASTER",
            "InstanceType":"m5.xlarge"
         },
         {
            "InstanceCount":4,
            "InstanceRole":"CORE",
            "InstanceType":"m5.xlarge"
         }
      ]
   },
   "JobFlowRole":"EMR_EC2_DefaultRole",
   "ServiceRole":"EMR_DefaultRole"
}
```
+ *ha-cluster*Substitua pelo nome do seu cluster de alta disponibilidade.
+ *subnet-22XXXX01*Substitua pelo seu ID de sub-rede.
+ *ec2\$1key\$1pair\$1name*Substitua o pelo nome do seu key pair do EC2 para esse cluster. O par de chaves do EC2 é opcional e necessário somente se você quiser usar SSH para acessar seu cluster.

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

**Example Exemplo — Use uma estratégia de grupos de posicionamento para iniciar um cluster de frota de instâncias com vários nós primários do AWS Command Line Interface**  
Ao usar a RunJobFlow ação para criar um cluster do Amazon EMR com vários nós primários, defina a `PlacementGroupConfigs` propriedade da seguinte forma. Atualmente, o perfil de instância `MASTER` usa automaticamente `SPREAD` como estratégia de grupo de posicionamento.  

```
aws emr create-cluster \
--name "ha-cluster" \
--placement-group-configs InstanceRole=MASTER \
--release-label emr-6.15.0 \
--instance-fleets '[
    {
        "InstanceFleetType": "MASTER",
        "TargetOnDemandCapacity": 3,
        "TargetSpotCapacity": 0,
        "LaunchSpecifications": {
            "OnDemandSpecification": {
                "AllocationStrategy": "lowest-price"
            }
        },
        "InstanceTypeConfigs": [
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.xlarge"
            },
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.2xlarge"
            },
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.4xlarge"
            }
        ],
        "Name": "Master - 1"
    },
    {
        "InstanceFleetType": "CORE",
        "TargetOnDemandCapacity": 5,
        "TargetSpotCapacity": 0,
        "LaunchSpecifications": {
            "OnDemandSpecification": {
                "AllocationStrategy": "lowest-price"
            }
        },
        "InstanceTypeConfigs": [
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.xlarge"
            },
            {
                "WeightedCapacity": 2,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.2xlarge"
            },
            {
                "WeightedCapacity": 4,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.4xlarge"
            }
        ],
        "Name": "Core - 2"
    }
]' \
--ec2-attributes '{
    "KeyName": "ec2_key_pair_name",
    "InstanceProfile": "EMR_EC2_DefaultRole",
    "SubnetIds": [
        "subnet-22XXXX01",
        "subnet-22XXXX02"
    ]
}' \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
```
+ *ha-cluster*Substitua pelo nome do seu cluster de alta disponibilidade.
+ *ec2\$1key\$1pair\$1name*Substitua o pelo nome do seu key pair do EC2 para esse cluster. O par de chaves do EC2 é opcional e necessário somente se você quiser usar SSH para acessar seu cluster.
+ *subnet-22XXXX01*Substitua e *subnet-22XXXX02* por sua sub-redeIDs.

------

## Iniciar um cluster com múltiplos nós primários sem uma estratégia de grupos de posicionamento
<a name="emr-plan-ha-launch-no-pg-strategy"></a>

Para que um cluster com múltiplos nós primários inicie nós primários sem a estratégia de grupos de posicionamento, é necessário:
+ Remova a política gerenciada por grupos `AmazonElasticMapReducePlacementGroupPolicy` de posicionamento da Amazon EMRrole ou
+ Inicie um cluster com múltiplos nós primários com o parâmetro `placement-group-configs` usando a Amazon EMRAPI ou a CLI, escolhendo `NONE` como estratégia de grupos de posicionamento.

------
#### [ Amazon EMR API ]

**Example — Iniciar um cluster com múltiplos nós primários sem estratégia de grupos de posicionamento usando a Amazon EMRAPI.**  
Ao usar a RunJobFlow ação para criar um cluster com vários nós primários, defina a `PlacementGroupConfigs` propriedade da seguinte forma.  

```
{
   "Name":"ha-cluster",
   "PlacementGroupConfigs":[
      {
         "InstanceRole":"MASTER",
         "PlacementStrategy":"NONE"
      }
   ],
   "ReleaseLabel":"emr-5.30.1",
   "Instances":{
      "ec2SubnetId":"subnet-22XXXX01",
      "ec2KeyName":"ec2_key_pair_name",
      "InstanceGroups":[
         {
            "InstanceCount":3,
            "InstanceRole":"MASTER",
            "InstanceType":"m5.xlarge"
         },
         {
            "InstanceCount":4,
            "InstanceRole":"CORE",
            "InstanceType":"m5.xlarge"
         }
      ]
   },
   "JobFlowRole":"EMR_EC2_DefaultRole",
   "ServiceRole":"EMR_DefaultRole"
}
```
+ *ha-cluster*Substitua pelo nome do seu cluster de alta disponibilidade.
+ *subnet-22XXXX01*Substitua pelo seu ID de sub-rede.
+ *ec2\$1key\$1pair\$1name*Substitua o pelo nome do seu key pair do EC2 para esse cluster. O par de chaves do EC2 é opcional e necessário somente se você quiser usar SSH para acessar seu cluster.

------
#### [ Amazon EMR CLI ]

**Example — Iniciar um cluster com múltiplos nós primários sem uma estratégia de grupos de posicionamento usando a Amazon EMRCLI.**  
Ao usar a RunJobFlow ação para criar um cluster com vários nós primários, defina a `PlacementGroupConfigs` propriedade da seguinte forma.  

```
aws emr create-cluster \
--name "ha-cluster" \
--placement-group-configs InstanceRole=MASTER,PlacementStrategy=NONE \
--release-label emr-5.30.1 \
--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \
--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
```
+ *ha-cluster*Substitua pelo nome do seu cluster de alta disponibilidade.
+ *subnet-22XXXX01*Substitua pelo seu ID de sub-rede.
+ *ec2\$1key\$1pair\$1name*Substitua o pelo nome do seu key pair do EC2 para esse cluster. O par de chaves do EC2 é opcional e necessário somente se você quiser usar SSH para acessar seu cluster.

------

## Verificar a configuração da estratégia de grupos de posicionamento anexada ao cluster com múltiplos nós primários
<a name="emr-plan-ha-check-pg-using-api"></a>

Use a API de descrição do cluster do Amazon EMR para ver a configuração da estratégia de grupos de posicionamento anexada ao cluster com múltiplos nós primários.

**Example**  

```
aws emr describe-cluster --cluster-id "j-xxxxx"
{
   "Cluster":{
      "Id":"j-xxxxx",
      ...
      ...
      "PlacementGroups":[
         {
            "InstanceRole":"MASTER",
            "PlacementStrategy":"SPREAD"
         }
      ]
   }
}
```