EMRIntegração da Amazon com grupos de EC2 colocação - Amazon EMR

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

EMRIntegração da Amazon com grupos de EC2 colocação

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

As estratégias de grupos de posicionamento são suportadas a partir da EMR versão 5.23.0 da Amazon como uma opção para vários clusters de 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 os grupos de EC2 posicionamento que a Amazon EMR cria rastreando o par de valores-chave que a Amazon EMR associa à estratégia de grupos de EMR posicionamento da Amazon. Para obter mais informações sobre tags de instância de EC2 cluster, consulteVeja instâncias de cluster na Amazon EC2.

Anexando a política gerenciada por grupos de posicionamento à Amazon EMRrole

A estratégia de grupos de posicionamento exige uma política gerenciada chamadaAmazonElasticMapReducePlacementGroupPolicy, que permite EMR à Amazon criar, excluir e descrever grupos de posicionamento na AmazonEC2. Você deve AmazonElasticMapReducePlacementGroupPolicy se associar à função de serviço da Amazon EMR antes de iniciar um EMR cluster da Amazon com vários nós primários.

Como alternativa, você pode anexar a política AmazonEMRServicePolicy_v2 gerenciada à função de EMR serviço da Amazon em vez da política gerenciada do grupo de posicionamento. AmazonEMRServicePolicy_v2permite o mesmo acesso aos grupos de colocação na Amazon EC2 que AmazonElasticMapReducePlacementGroupPolicy o. Para obter mais informações, consulte Função de serviço para a Amazon EMR (EMRfunção).

A política AmazonElasticMapReducePlacementGroupPolicy gerenciada é o JSON texto a seguir, criado e administrado pela AmazonEMR.

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.

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

Inicie um EMR cluster da Amazon com vários nós primários usando a estratégia de grupos de posicionamento

Para iniciar um EMR cluster da Amazon que tenha vários nós primários com uma estratégia de grupo de posicionamento, anexe a política gerenciada do grupo de posicionamento AmazonElasticMapReducePlacementGroupPolicy à EMR função da Amazon. Para obter mais informações, consulte Anexando a política gerenciada por grupos de posicionamento à Amazon EMRrole.

Toda vez que você usa essa função para iniciar um EMR cluster da Amazon com vários nós primários, a Amazon EMR tenta lançar um cluster com a SPREAD estratégia aplicada aos seus nós primários. Se você usar uma função que não tenha a política gerenciada por grupos de posicionamento AmazonElasticMapReducePlacementGroupPolicy vinculada a ela, a Amazon EMR tentará lançar um EMR cluster da Amazon que tenha vários nós primários sem uma estratégia de grupos de posicionamento.

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

Amazon EMR API
exemplo Exemplo — Use uma estratégia de grupos de posicionamento para iniciar um cluster de grupos de instâncias com vários nós primários da Amazon EMR API

Ao usar a RunJobFlow ação para criar um EMR cluster da Amazon 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" }
  • Substituir ha-cluster com o nome do seu cluster de alta disponibilidade.

  • Substituir subnet-22XXXX01 com seu ID de sub-rede.

  • Substitua o ec2_key_pair_name com o nome do seu EC2 key pair para esse cluster. EC2o key pair é opcional e só é necessário se você quiser usá-lo 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 EMR cluster da Amazon 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
  • Substituir ha-cluster com o nome do seu cluster de alta disponibilidade.

  • Substitua o ec2_key_pair_name com o nome do seu EC2 key pair para esse cluster. EC2o key pair é opcional e só é necessário se você quiser usá-lo SSH para acessar seu cluster.

  • Substituir subnet-22XXXX01 e subnet-22XXXX02com 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 vários nós primários com o placement-group-configs parâmetro usando a Amazon EMRAPI ou CLI escolhendo NONE como estratégia de grupo de posicionamento.

Amazon EMR API
exemplo — Lançamento de um cluster com vários nós primários sem estratégia de grupos de posicionamento usando a AmazonEMRAPI.

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" }
  • Substituir ha-cluster com o nome do seu cluster de alta disponibilidade.

  • Substituir subnet-22XXXX01 com seu ID de sub-rede.

  • Substitua o ec2_key_pair_name com o nome do seu EC2 key pair para esse cluster. EC2o key pair é opcional e só é necessário se você quiser usá-lo SSH para acessar seu cluster.

Amazon EMR CLI
exemplo — Lançamento de um cluster com vários nós primários sem uma estratégia de grupos de posicionamento usando a AmazonEMRCLI.

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
  • Substituir ha-cluster com o nome do seu cluster de alta disponibilidade.

  • Substituir subnet-22XXXX01 com seu ID de sub-rede.

  • Substitua o ec2_key_pair_name com o nome do seu EC2 key pair para esse cluster. EC2o key pair é opcional e só é necessário se você quiser usá-lo 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

Você pode usar o cluster Amazon EMR describe API para ver a configuração da estratégia do grupo de posicionamento anexada ao cluster com vários nós primários.

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