EMRAmazon-Integration mit EC2 Platzierungsgruppen - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

EMRAmazon-Integration mit EC2 Platzierungsgruppen

Wenn Sie einen Amazon-Cluster mit EMR mehreren primären Knoten auf Amazon startenEC2, haben Sie die Möglichkeit, Platzierungsgruppenstrategien zu verwenden, um festzulegen, wie die Primärknoten-Instances zum Schutz vor Hardwareausfällen bereitgestellt werden sollen.

Platzierungsgruppenstrategien werden ab EMR Amazon-Version 5.23.0 als Option für Cluster mit mehreren primären Knoten unterstützt. Derzeit werden nur Primärkotentypen von der Platzierungsgruppenstrategie unterstützt, und die SPREAD-Strategie wird auf diese Primärknoten angewendet. Bei dieser SPREAD-Strategie wird eine kleine Gruppe von Instances auf separater zugrundeliegender Hardware platziert, um den Verlust mehrerer Primärknoten im Falle eines Hardwarefehlers zu verhindern. Beachten Sie, dass eine Anforderung zum Starten einer Instance fehlschlagen kann, wenn es nicht genügend eindeutige Hardware zur Erfüllung der Anforderung gibt. Weitere Informationen zu EC2 Platzierungsstrategien und Einschränkungen finden Sie unter Platzierungsgruppen im EC2Benutzerhandbuch für Linux-Instances.

Amazon gibt ein anfängliches Limit EC2 von 500 Clustern mit aktivierter Platzierungsgruppenstrategie, die pro AWS Region gestartet werden können. Wenden Sie sich an den AWS Support, um eine Erhöhung der Anzahl der zulässigen Platzierungsgruppen zu beantragen. Sie können EC2 Platzierungsgruppen identifizieren, die Amazon EMR erstellt, indem Sie das Schlüssel-Wert-Paar verfolgen, das Amazon mit der EMR Amazon-Platzierungsgruppenstrategie EMR verknüpft. Weitere Informationen zu EC2 Cluster-Instance-Tags finden Sie unter. Cluster-Instances in Amazon anzeigen EC2

Hängen Sie die von der Platzierungsgruppe verwaltete Richtlinie an Amazon an EMRrole

Die Platzierungsgruppenstrategie erfordert eine verwaltete Richtlinie namensAmazonElasticMapReducePlacementGroupPolicy, die es Amazon ermöglicht, Platzierungsgruppen auf Amazon EMR zu erstellen, zu löschen und zu beschreibenEC2. Sie müssen AmazonElasticMapReducePlacementGroupPolicy sich der Service-Rolle für Amazon zuordnen, EMR bevor Sie einen EMR Amazon-Cluster mit mehreren Primärknoten starten.

Sie können die AmazonEMRServicePolicy_v2 verwaltete Richtlinie alternativ der EMR Amazon-Servicerolle anstelle der verwalteten Richtlinie für die Platzierungsgruppe zuordnen. AmazonEMRServicePolicy_v2ermöglicht den gleichen Zugriff auf Platzierungsgruppen bei Amazon EC2 wie derAmazonElasticMapReducePlacementGroupPolicy. Weitere Informationen finden Sie unter Servicerolle für Amazon EMR (EMRRolle).

Die AmazonElasticMapReducePlacementGroupPolicy verwaltete Richtlinie ist der folgende JSON Text, der von Amazon erstellt und verwaltet wirdEMR.

Anmerkung

Da die AmazonElasticMapReducePlacementGroupPolicy verwaltete Richtlinie automatisch aktualisiert wird, kann es sein, dass die hier gezeigte Richtlinie aktualisiert wird out-of-date. Verwenden Sie die AWS Management Console, um die aktuelle Richtlinie einzusehen.

{ "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" ] } ] }

Starten Sie einen EMR Amazon-Cluster mit mehreren Primärknoten mithilfe der Platzierungsgruppenstrategie

Um einen EMR Amazon-Cluster mit mehreren primären Knoten mit einer Platzierungsgruppenstrategie zu starten, fügen Sie die von der Platzierungsgruppe verwaltete Richtlinie der EMR Amazon-Rolle AmazonElasticMapReducePlacementGroupPolicy hinzu. Weitere Informationen finden Sie unter Hängen Sie die von der Platzierungsgruppe verwaltete Richtlinie an Amazon an EMRrole.

Jedes Mal, wenn Sie diese Rolle verwenden, um einen EMR Amazon-Cluster mit mehreren primären Knoten zu starten, EMR versucht Amazon, einen Cluster mit einer SPREAD Strategie zu starten, die auf seine primären Knoten angewendet wird. Wenn Sie eine Rolle verwenden, der die Richtlinie zur Verwaltung der Platzierungsgruppe nicht AmazonElasticMapReducePlacementGroupPolicy zugeordnet ist, EMR versucht Amazon, einen EMR Amazon-Cluster mit mehreren primären Knoten ohne Platzierungsgruppenstrategie zu starten.

Wenn Sie einen EMR Amazon-Cluster mit mehreren Primärknoten starten, wobei der placement-group-configs Parameter Amazon EMRAPI oder verwendetCLI, startet Amazon den Cluster EMR nur, wenn Amazon die Platzierungsgruppen-verwaltete Richtlinie AmazonElasticMapReducePlacementGroupPolicy angehängt EMRrole hat. Wenn Amazon die Richtlinie EMRrole nicht angehängt hat, schlägt der Start des EMR Amazon-Clusters mit mehreren Primärknoten fehl.

Amazon EMR API
Beispiel — Verwenden Sie eine Platzierungsgruppenstrategie, um einen Instance-Gruppen-Cluster mit mehreren Primärknoten von Amazon aus zu starten EMR API

Wenn Sie die RunJobFlow Aktion verwenden, um einen EMR Amazon-Cluster mit mehreren Primärknoten zu erstellen, legen Sie die PlacementGroupConfigs Eigenschaft wie folgt fest. Derzeit wird die MASTER-Instance-Rolle automatisch SPREAD als Platzierungsgruppenstrategie verwendet.

{ "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" }
  • Ersetzen ha-cluster mit dem Namen Ihres Hochverfügbarkeitsclusters.

  • Ersetzen subnet-22XXXX01 mit Ihrer Subnetz-ID.

  • Ersetzen Sie die ec2_key_pair_name mit dem Namen Ihres EC2 key pair für diesen Cluster. EC2Das key pair ist optional und nur erforderlich, wenn Sie es für den SSH Zugriff auf Ihren Cluster verwenden möchten.

AWS CLI
Beispiel – Verwenden Sie eine Platzierungsgruppenstrategie, um einen Instance-Flotten-Cluster mit mehreren Primärknoten über die AWS Command Line Interface zu starten

Wenn Sie die RunJobFlow Aktion verwenden, um einen EMR Amazon-Cluster mit mehreren Primärknoten zu erstellen, legen Sie die PlacementGroupConfigs Eigenschaft wie folgt fest. Derzeit wird die MASTER-Instance-Rolle automatisch SPREAD als Platzierungsgruppenstrategie verwendet.

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
  • Ersetzen ha-cluster mit dem Namen Ihres Hochverfügbarkeitsclusters.

  • Ersetzen Sie das ec2_key_pair_name mit dem Namen Ihres EC2 key pair für diesen Cluster. EC2Das key pair ist optional und nur erforderlich, wenn Sie es für den SSH Zugriff auf Ihren Cluster verwenden möchten.

  • Ersetzen subnet-22XXXX01 and subnet-22XXXX02mit Ihrem SubnetzIDs.

Starten Sie einen Cluster mit mehreren Primärknoten ohne eine Platzierungsgruppenstrategie

Damit ein Cluster mit mehreren Primärknoten ohne die Platzierungsgruppenstrategie starten kann, müssen Sie einen der folgenden Schritte ausführen:

  • Entfernen Sie die von der Platzierungsgruppe verwaltete Richtlinie AmazonElasticMapReducePlacementGroupPolicy aus AmazonEMRrole, oder

  • Starten Sie einen Cluster mit mehreren Primärknoten mit dem placement-group-configs Parameter, indem Sie Amazon verwenden EMRAPI oder NONE als Platzierungsgruppenstrategie CLI wählen.

Amazon EMR API
Beispiel — Starten eines Clusters mit mehreren Primärknoten ohne Platzierungsgruppenstrategie mithilfe von AmazonEMRAPI.

Wenn Sie die RunJobFlow Aktion verwenden, um einen Cluster mit mehreren Primärknoten zu erstellen, legen Sie die PlacementGroupConfigs Eigenschaft wie folgt fest.

{ "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" }
  • Ersetzen ha-cluster mit dem Namen Ihres Hochverfügbarkeitsclusters.

  • Ersetzen subnet-22XXXX01 mit Ihrer Subnetz-ID.

  • Ersetzen Sie die ec2_key_pair_name mit dem Namen Ihres EC2 key pair für diesen Cluster. EC2Das key pair ist optional und nur erforderlich, wenn Sie es für den SSH Zugriff auf Ihren Cluster verwenden möchten.

Amazon EMR CLI
Beispiel — Starten eines Clusters mit mehreren Primärknoten ohne Platzierungsgruppenstrategie mithilfe von AmazonEMRCLI.

Wenn Sie die RunJobFlow Aktion verwenden, um einen Cluster mit mehreren Primärknoten zu erstellen, legen Sie die PlacementGroupConfigs Eigenschaft wie folgt fest.

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
  • Ersetzen ha-cluster mit dem Namen Ihres Hochverfügbarkeitsclusters.

  • Ersetzen subnet-22XXXX01 mit Ihrer Subnetz-ID.

  • Ersetzen Sie die ec2_key_pair_name mit dem Namen Ihres EC2 key pair für diesen Cluster. EC2Das key pair ist optional und nur erforderlich, wenn Sie es für den SSH Zugriff auf Ihren Cluster verwenden möchten.

Überprüfen Sie die Konfiguration der Platzierungsgruppenstrategie, die an den Cluster mit mehreren Primärknoten angehängt ist

Sie können den Amazon EMR Describe-Cluster verwendenAPI, um die Konfiguration der Platzierungsgruppenstrategie zu sehen, die dem Cluster mit mehreren primären Knoten zugeordnet ist.

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