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 EC2 grupos de colocação
Ao iniciar um cluster de vários nós primários do Amazon EMR na Amazon EC2, você tem a opção de usar estratégias de grupos de posicionamento para especificar como você deseja que as instâncias de nós primários 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 estratégias e limitações de EC2 posicionamento, consulte Grupos de posicionamento no Guia EC2 do usuário para instâncias Linux.
Há um limite inicial da Amazon EC2 de 500 clusters habilitados para estratégias de grupos de posicionamento que podem ser lançados por AWS região. Entre em contato com o AWS suporte para solicitar um aumento no número de grupos de colocação permitidos. Você pode identificar grupos de EC2 posicionamento que o Amazon EMR cria rastreando o par de valores-chave que o Amazon EMR associa à estratégia de grupos de posicionamento do Amazon EMR. Para obter mais informações sobre tags de instância de EC2 cluster, consulteVeja instâncias de cluster na Amazon EC2.
Anexe a política gerenciada do grupo de colocação à Amazon EMRrole
A estratégia de grupos de posicionamento exige uma política gerenciada chamadaAmazonElasticMapReducePlacementGroupPolicy
, que permite ao Amazon EMR criar, excluir e descrever grupos de posicionamento na 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 AmazonEMRServicePolicy_v2
gerenciada à função de serviço do Amazon EMR em vez da política gerenciada do grupo de posicionamento. AmazonEMRServicePolicy_v2
permite o mesmo acesso aos grupos de colocação na Amazon EC2 que AmazonElasticMapReducePlacementGroupPolicy
o. Para obter mais informações, consulte Perfil de serviço para Amazon EMR (perfil do EMR).
A política gerenciada AmazonElasticMapReducePlacementGroupPolicy
é o texto JSON a seguir criado e administrado pelo Amazon EMR.
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
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.
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
-
exemplo 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_key_pair_name
Substitua o pelo nome do seu EC2 key pair para esse cluster. EC2 o key pair é opcional e só é necessário se você quiser usar SSH para acessar seu cluster.
- AWS CLI
-
exemplo Exemplo: usar uma estratégia de grupos de posicionamento para executar um cluster de frotas de instâncias com vários nós primários da 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_key_pair_name
Substitua o pelo nome do seu EC2 key pair para esse cluster. EC2 o key pair é opcional e só é necessário 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
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
-
exemplo — 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_key_pair_name
Substitua o pelo nome do seu EC2 key pair para esse cluster. EC2 o key pair é opcional e só é necessário se você quiser usar SSH para acessar seu cluster.
- Amazon EMR CLI
-
exemplo — 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_key_pair_name
Substitua o pelo nome do seu EC2 key pair para esse cluster. EC2 o key pair é opcional e só é necessário 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
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.
aws emr describe-cluster --cluster-id "j-xxxxx"
{
"Cluster":{
"Id":"j-xxxxx",
...
...
"PlacementGroups":[
{
"InstanceRole":"MASTER",
"PlacementStrategy":"SPREAD"
}
]
}
}