Amazon EMR-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.

Amazon EMR-Integration mit EC2 Platzierungsgruppen

Wenn Sie einen Amazon EMR-Cluster mit mehreren primären Knoten auf Amazon starten EC2, 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 Amazon-EMR-Version 5.23.0 als Option für Cluster mit mehreren Primärknoten 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 EC2 Benutzerhandbuch für Linux-Instances.

Amazon hat ein anfängliches Limit EC2 von 500 Clustern mit Platzierungsgruppenstrategie festgelegt, 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 EMR mit der Amazon EMR-Platzierungsgruppenstrategie 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 EMR ermöglicht, Platzierungsgruppen auf Amazon EC2 zu erstellen, zu löschen und zu beschreiben. Sie müssen AmazonElasticMapReducePlacementGroupPolicy an die Servicerolle für Amazon EMR anhängen, bevor Sie einen Amazon-EMR-Cluster mit mehreren Primärknoten starten.

Sie können die AmazonEMRServicePolicy_v2 verwaltete Richtlinie alternativ der Amazon EMR-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 (EMR-Rolle).

Bei der von AmazonElasticMapReducePlacementGroupPolicy verwalteten Richtlinie handelt es sich um den folgenden JSON-Text, der von Amazon EMR erstellt und verwaltet wird.

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

Einen Amazon-EMR-Cluster mit mehrere Primärknoten mittels Platzierungsgruppenstrategie starten

Um einen Amazon-EMR-Cluster, der mehrere Primärknoten hat, mit einer Platzierungsgruppenstrategie zu starten, fügen Sie der Amazon-EMR-Rolle die von der Platzierungsgruppe verwaltete Richtlinie 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 Amazon-EMR-Cluster mit mehreren Primärknoten zu starten, versucht Amazon EMR, einen Cluster zu starten, wobei die SPREAD-Strategie auf seine Primärknoten angewendet wird. Wenn Sie eine Rolle verwenden, der nicht die von der Platzierungsgruppe verwaltete Richtlinie AmazonElasticMapReducePlacementGroupPolicy zugeordnet ist, versucht Amazon EMR, einen Amazon-EMR-Cluster mit mehreren Primärknoten ohne Platzierungsgruppenstrategie zu starten.

Wenn Sie einen Amazon EMR-Cluster mit mehreren Primärknoten starten, wobei der placement-group-configs Parameter Amazon EMRAPI oder CLI verwendet, startet Amazon EMR den Cluster nur, wenn Amazon die Richtlinie für die Verwaltung der Platzierungsgruppe zugewiesen EMRrole hat. AmazonElasticMapReducePlacementGroupPolicy Wenn Amazon die Richtlinie EMRrole nicht angehängt hat, schlägt der Start des Amazon EMR-Clusters mit mehreren Primärknoten fehl.

Amazon EMR API
Beispiel – Verwenden Sie eine Platzierungsgruppenstrategie, um einen Instance-Gruppen-Cluster mit mehreren Primärknoten über die Amazon-EMR-API zu starten

Wenn Sie die RunJobFlow Aktion verwenden, um einen Amazon EMR-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 Sie es ha-cluster durch den Namen Ihres Hochverfügbarkeitsclusters.

  • Ersetzen Sie subnet-22XXXX01 durch Ihre Subnetz-ID.

  • Ersetzen Sie das ec2_key_pair_name durch den Namen Ihres EC2 key pair für diesen Cluster. EC2 Ein key pair ist optional und nur erforderlich, wenn Sie SSH für den 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 Amazon EMR-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 Sie es ha-cluster durch den Namen Ihres Hochverfügbarkeitsclusters.

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

  • Ersetzen Sie subnet-22XXXX01 und subnet-22XXXX02 durch Ihr IDs Subnetz.

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 Amazon EMRrole, oder

  • Starten Sie einen Cluster mit mehreren Primärknoten, wobei der placement-group-configs-Parameter Amazon EMRAPI oder CLI NONE als Platzierungsgruppenstrategie verwendet.

Amazon EMR API
Beispiel – Starten eines Clusters mit mehreren Primärknoten ohne Platzierungsgruppenstrategie mithilfe der Amazon EMRAPI.

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" }
  • ha-clusterErsetzen Sie es durch den Namen Ihres Hochverfügbarkeitsclusters.

  • Ersetzen Sie subnet-22XXXX01 durch Ihre Subnetz-ID.

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

Amazon EMR CLI
Beispiel – Starten eines Clusters mit mehreren Primärknoten ohne Platzierungsgruppenstrategie mithilfe der Amazon EMRCLI.

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
  • ha-clusterErsetzen Sie es durch den Namen Ihres Hochverfügbarkeitsclusters.

  • Ersetzen Sie subnet-22XXXX01 durch Ihre Subnetz-ID.

  • Ersetzen Sie das ec2_key_pair_name durch den Namen Ihres EC2 key pair für diesen Cluster. EC2 Ein key pair ist optional und nur erforderlich, wenn Sie SSH für den 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 die Amazon-EMR-Cluster-API verwenden, um die Konfiguration der Platzierungsgruppenstrategie anzuzeigen, die dem Cluster mit mehreren Primärknoten zugeordnet ist.

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