Diese Dokumentation bezieht sich AWS CLI nur auf Version 1 von. Dokumentation zu Version 2 von finden Sie im Benutzerhandbuch für Version 2. AWS CLI
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-Beispiele mit AWS CLI
Die folgenden Codebeispiele zeigen Ihnen, wie Sie AWS Command Line Interface mit Amazon EMR Aktionen ausführen und allgemeine Szenarien implementieren.
Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarios anzeigen.
Jedes Beispiel enthält einen Link zum vollständigen Quellcode, in dem Sie Anweisungen zur Einrichtung und Ausführung des Codes im Kontext finden.
Themen
Aktionen
Das folgende Codebeispiel zeigt die Verwendungadd-instance-fleet
.
- AWS CLI
-
Um einem Cluster eine Task-Instance-Flotte hinzuzufügen
In diesem Beispiel wird dem angegebenen Cluster eine neue Task-Instance-Flotte hinzugefügt.
Befehl:
aws emr add-instance-fleet --cluster-id '
j-12ABCDEFGHI34JK
' --instance-fleet InstanceFleetType=TASK,TargetSpotCapacity=1,LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},InstanceTypeConfigs=['{InstanceType=m3.xlarge,BidPrice=0.5}']Ausgabe:
{ "ClusterId": "j-12ABCDEFGHI34JK", "InstanceFleetId": "if-23ABCDEFGHI45JJ" }
-
Einzelheiten zur API finden Sie AddInstanceFleet
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungadd-steps
.
- AWS CLI
-
1. Um benutzerdefinierte JAR-Schritte zu einem Cluster hinzuzufügen
Befehl:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://mybucket/mytest.jar,Args=arg1,arg2,arg3 Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://mybucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3
Erforderliche Parameter:
Jar
Optionale Parameter:
Type, Name, ActionOnFailure, Args
Ausgabe:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
2. Um Streaming-Schritte zu einem Cluster hinzuzufügen
Befehl:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=STREAMING,Name='Streaming Program',ActionOnFailure=CONTINUE,Args=[-files,s3://elasticmapreduce/samples/wordcount/wordSplitter.py,-mapper,wordSplitter.py,-reducer,aggregate,-input,s3://elasticmapreduce/samples/wordcount/input,-output,s3://mybucket/wordcount/output]
Erforderliche Parameter:
Type, Args
Optionale Parameter:
Name, ActionOnFailure
JSON-Äquivalent (Inhalt von step.json):
[ { "Name": "JSON Streaming Step", "Args": ["-files","s3://elasticmapreduce/samples/wordcount/wordSplitter.py","-mapper","wordSplitter.py","-reducer","aggregate","-input","s3://elasticmapreduce/samples/wordcount/input","-output","s3://mybucket/wordcount/output"], "ActionOnFailure": "CONTINUE", "Type": "STREAMING" } ]
HINWEIS: JSON-Argumente müssen Optionen und Werte als eigene Elemente in der Liste enthalten.
Befehl (mit step.json):
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./step.json
Ausgabe:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
3. Um einen Streaming-Schritt mit mehreren Dateien zu einem Cluster hinzuzufügen (nur JSON)
JSON (mehrere Dateien.json):
[ { "Name": "JSON Streaming Step", "Type": "STREAMING", "ActionOnFailure": "CONTINUE", "Args": [ "-files", "s3://mybucket/mapper.py,s3://mybucket/reducer.py", "-mapper", "mapper.py", "-reducer", "reducer.py", "-input", "s3://mybucket/input", "-output", "s3://mybucket/output"] } ]
Befehl:
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./multiplefiles.json
Erforderliche Parameter:
Type, Args
Optionale Parameter:
Name, ActionOnFailure
Ausgabe:
{ "StepIds":[ "s-XXXXXXXX", ] }
4. Um Hive-Schritte zu einem Cluster hinzuzufügen
Befehl:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=HIVE,Name='Hive program',ActionOnFailure=CONTINUE,Args=[-f,s3://mybucket/myhivescript.q,-d,INPUT=s3://mybucket/myhiveinput,-d,OUTPUT=s3://mybucket/myhiveoutput,arg1,arg2] Type=HIVE,Name='Hive steps',ActionOnFailure=TERMINATE_CLUSTER,Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/model-build.q,-d,INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://mybucket/hive-ads/output/2014-04-18/11-07-32,-d,LIBS=s3://elasticmapreduce/samples/hive-ads/libs]
Erforderliche Parameter:
Type, Args
Optionale Parameter:
Name, ActionOnFailure
Ausgabe:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
5. Um Pig-Schritte zu einem Cluster hinzuzufügen
Befehl:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=PIG,Name='Pig program',ActionOnFailure=CONTINUE,Args=[-f,s3://mybucket/mypigscript.pig,-p,INPUT=s3://mybucket/mypiginput,-p,OUTPUT=s3://mybucket/mypigoutput,arg1,arg2] Type=PIG,Name='Pig program',Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://mybucket/pig-apache/output,arg1,arg2]
Erforderliche Parameter:
Type, Args
Optionale Parameter:
Name, ActionOnFailure
Ausgabe:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
6. Um Impala-Schritte zu einem Cluster hinzuzufügen
Befehl:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=IMPALA,Name='Impala program',ActionOnFailure=CONTINUE,Args=--impala-script,s3://myimpala/input,--console-output-path,s3://myimpala/output
Erforderliche Parameter:
Type, Args
Optionale Parameter:
Name, ActionOnFailure
Ausgabe:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
-
Einzelheiten zur API finden Sie AddSteps
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungadd-tags
.
- AWS CLI
-
1. Um Tags zu einem Cluster hinzuzufügen
Befehl:
aws emr add-tags --resource-id j-xxxxxxx --tags name="John Doe" age=29 sex=male address="123 East NW Seattle"
Ausgabe:
None
2. Um die Tags eines Clusters aufzulisten
--Befehl:
aws emr describe-cluster --cluster-id
j-XXXXXXYY
--queryCluster.Tags
Ausgabe:
[ { "Value": "male", "Key": "sex" }, { "Value": "123 East NW Seattle", "Key": "address" }, { "Value": "John Doe", "Key": "name" }, { "Value": "29", "Key": "age" } ]
-
Einzelheiten zur API finden Sie AddTags
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungcreate-cluster-examples
.
- AWS CLI
-
In den meisten der folgenden Beispiele wird davon ausgegangen, dass Sie Ihre Amazon EMR-Servicerolle und Ihr EC2 Amazon-Instance-Profil angegeben haben. Wenn Sie dies nicht getan haben, müssen Sie jede erforderliche IAM-Rolle angeben oder den
--use-default-roles
Parameter bei der Erstellung Ihres Clusters verwenden. Weitere Informationen zur Angabe von IAM-Rollen finden Sie unter Configure IAM-Rollen for Amazon EMR Permissions to AWS Services im Amazon EMR Management Guide.Beispiel 1: So erstellen Sie einen Cluster
Im folgenden
create-cluster
Beispiel wird ein einfacher EMR-Cluster erstellt.aws emr create-cluster \ --release-label
emr-5.14.0
\ --instance-typem4.large
\ --instance-count2
Mit diesem Befehl wird keine Ausgabe zurückgegeben.
Beispiel 2: So erstellen Sie einen Amazon EMR-Cluster mit Standard ServiceRole und Rollen InstanceProfile
Im folgenden
create-cluster
Beispiel wird ein Amazon EMR-Cluster erstellt, der die--instance-groups
Konfiguration verwendet.aws emr create-cluster \ --release-label
emr-5.14.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Beispiel 3: So erstellen Sie einen Amazon EMR-Cluster, der eine Instance-Flotte verwendet
Im folgenden
create-cluster
Beispiel wird ein Amazon EMR-Cluster erstellt, der die--instance-fleets
Konfiguration verwendet und zwei Instance-Typen für jede Flotte und zwei EC2 Subnetze angibt.aws emr create-cluster \ --release-label
emr-5.14.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m4.large}'] InstanceFleetType=CORE,TargetSpotCapacity=11,InstanceTypeConfigs=['{InstanceType=m4.large,BidPrice=0.5,WeightedCapacity=3}','{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}Beispiel 4: Um einen Cluster mit Standardrollen zu erstellen
Im folgenden
create-cluster
Beispiel wird der--use-default-roles
Parameter verwendet, um die Standarddienstrolle und das Instanzprofil anzugeben.aws emr create-cluster \ --release-label
emr-5.9.0
\ --use-default-roles \ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateBeispiel 5: Um einen Cluster zu erstellen und die zu installierenden Anwendungen anzugeben
Im folgenden
create-cluster
Beispiel wird der--applications
Parameter verwendet, um die Anwendungen anzugeben, die Amazon EMR installiert. In diesem Beispiel werden Hadoop, Hive und Pig installiert.aws emr create-cluster \ --applications
Name=Hadoop
Name=Hive
Name=Pig
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateBeispiel 6: Um einen Cluster zu erstellen, der Spark enthält
Im folgenden Beispiel wird Spark installiert.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --applicationsName=Spark
\ --ec2-attributesKeyName=myKey
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateBeispiel 7: So geben Sie ein benutzerdefiniertes AMI an, das für Cluster-Instances verwendet werden soll
Im folgenden
create-cluster
Beispiel wird eine Cluster-Instance erstellt, die auf dem Amazon Linux AMI mit ID basiertami-a518e6df
.aws emr create-cluster \ --name
"Cluster with My Custom AMI"
\ --custom-ami-idami-a518e6df
\ --ebs-root-volume-size20
\ --release-labelemr-5.9.0
\ --use-default-roles \ --instance-count2
\ --instance-typem4.large
Beispiel 8: Um Anwendungskonfigurationen anzupassen
In den folgenden Beispielen
--configurations
wird der Parameter verwendet, um eine JSON-Konfigurationsdatei anzugeben, die Anwendungsanpassungen für Hadoop enthält. Weitere Informationen finden Sie unter Konfigurieren von Anwendungen in den Amazon EMR-Versionshinweisen.Inhalt von
configurations.json
:[ { "Classification": "mapred-site", "Properties": { "mapred.tasktracker.map.tasks.maximum": 2 } }, { "Classification": "hadoop-env", "Properties": {}, "Configurations": [ { "Classification": "export", "Properties": { "HADOOP_DATANODE_HEAPSIZE": 2048, "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19" } } ] } ]
Das folgende Beispiel verweist auf
configurations.json
eine lokale Datei.aws emr create-cluster \ --configurations
file://configurations.json
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateDas folgende Beispiel verweist auf
configurations.json
eine Datei in Amazon S3.aws emr create-cluster \ --configurations
https://s3.amazonaws.com/amzn-s3-demo-bucket/configurations.json
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateBeispiel 9: Um einen Cluster mit Master-, Core- und Task-Instance-Gruppen zu erstellen
Im folgenden
create-cluster
Beispiel werden Typ und Anzahl der EC2 Instanzen angegeben, die für Master-, Core- und Task-Instanzgruppen verwendet--instance-groups
werden sollen.aws emr create-cluster \ --release-label
emr-5.9.0
\ --instance-groupsName=Master,InstanceGroupType=MASTER,InstanceType=m4.large,InstanceCount=1
Name=Core,InstanceGroupType=CORE,InstanceType=m4.large,InstanceCount=2
Name=Task,InstanceGroupType=TASK,InstanceType=m4.large,InstanceCount=2
Beispiel 10: Um anzugeben, dass ein Cluster nach Abschluss aller Schritte beendet werden soll
Im folgenden
create-cluster
Beispiel wird--auto-terminate
angegeben, dass der Cluster nach Abschluss aller Schritte automatisch heruntergefahren werden soll.aws emr create-cluster \ --release-label
emr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateBeispiel 11: Um Cluster-Konfigurationsdetails wie das EC2 Amazon-Schlüsselpaar, die Netzwerkkonfiguration und Sicherheitsgruppen anzugeben
Im folgenden
create-cluster
Beispiel wird ein Cluster mit dem Namen des EC2 Amazon-SchlüsselpaarsmyKey
und einem benutzerdefinierten Instance-Profil mit dem Namen erstelltmyProfile
. Schlüsselpaare werden verwendet, um SSH-Verbindungen zu Clusterknoten, meistens zum Master-Knoten, zu autorisieren. Weitere Informationen finden Sie unter Verwenden eines EC2 Amazon-Schlüsselpaars für SSH-Anmeldeinformationen im Amazon EMR Management Guide.aws emr create-cluster \ --ec2-attributes
KeyName=myKey,InstanceProfile=myProfile
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateDas folgende Beispiel erstellt einen Cluster in einem Amazon VPC-Subnetz.
aws emr create-cluster \ --ec2-attributes
SubnetId=subnet-xxxxx
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateIm folgenden Beispiel wird ein Cluster in der
us-east-1b
Availability Zone erstellt.aws emr create-cluster \ --ec2-attributes
AvailabilityZone=us-east-1b
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Im folgenden Beispiel wird ein Cluster erstellt und nur die von Amazon EMR verwalteten Sicherheitsgruppen angegeben.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Das folgende Beispiel erstellt einen Cluster und spezifiziert nur zusätzliche EC2 Amazon-Sicherheitsgruppen.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4]
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Im folgenden Beispiel wird ein Cluster erstellt und die von EMR verwalteten Sicherheitsgruppen sowie zusätzliche Sicherheitsgruppen angegeben.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4]
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Das folgende Beispiel erstellt einen Cluster in einem privaten VPC-Subnetz und verwendet eine bestimmte EC2 Amazon-Sicherheitsgruppe, um den Amazon EMR-Servicezugriff zu aktivieren, der für Cluster in privaten Subnetzen erforderlich ist.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,ServiceAccessSecurityGroup=sg-service-access,EmrManagedMasterSecurityGroup=sg-master,EmrManagedSlaveSecurityGroup=sg-slave
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Das folgende Beispiel spezifiziert die Konfigurationsparameter für Sicherheitsgruppen mithilfe einer JSON-Datei mit dem Namen
ec2_attributes.json
, die lokal gespeichert ist. HINWEIS: JSON-Argumente müssen Optionen und Werte als eigene Elemente in der Liste enthalten.aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesfile://ec2_attributes.json
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Inhalt von
ec2_attributes.json
:[ { "SubnetId": "subnet-xxxxx", "KeyName": "myKey", "InstanceProfile":"myRole", "EmrManagedMasterSecurityGroup": "sg-master1", "EmrManagedSlaveSecurityGroup": "sg-slave1", "ServiceAccessSecurityGroup": "sg-service-access", "AdditionalMasterSecurityGroups": ["sg-addMaster1","sg-addMaster2","sg-addMaster3","sg-addMaster4"], "AdditionalSlaveSecurityGroups": ["sg-addSlave1","sg-addSlave2","sg-addSlave3","sg-addSlave4"] } ]
Beispiel 12: Um das Debugging zu aktivieren und eine Log-URI anzugeben
Im folgenden
create-cluster
Beispiel wird der--enable-debugging
Parameter verwendet, mit dem Sie Protokolldateien einfacher mit dem Debugging-Tool in der Amazon EMR-Konsole anzeigen können. Der--log-uri
Parameter ist erforderlich mit.--enable-debugging
aws emr create-cluster \ --enable-debugging \ --log-uri
s3://amzn-s3-demo-bucket/myLog
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateBeispiel 13: Um beim Erstellen eines Clusters Tags hinzuzufügen
Tags sind Schlüssel-Wert-Paare, die Ihnen helfen, Cluster zu identifizieren und zu verwalten. Im folgenden
create-cluster
Beispiel wird der--tags
Parameter verwendet, um drei Tags für einen Cluster zu erstellen, eines mit dem Schlüsselnamenname
und dem WertShirley Rodriguez
, ein zweites mit dem Schlüsselnamenage
und dem Wert29
und ein drittes Tag mit dem Schlüsselnamendepartment
und dem Wert.Analytics
aws emr create-cluster \ --tags name="Shirley Rodriguez"
age=29
department="Analytics" \ --release-labelemr-5.32.0
\ --instance-typem5.xlarge
\ --instance-count3
\ --use-default-rolesDas folgende Beispiel listet die auf einen Cluster angewendeten Tags auf.
aws emr describe-cluster \ --cluster-id
j-XXXXXXYY
\ --queryCluster.Tags
Beispiel 14: Um eine Sicherheitskonfiguration zu verwenden, die Verschlüsselung und andere Sicherheitsfunktionen aktiviert
Im folgenden
create-cluster
Beispiel wird der--security-configuration
Parameter verwendet, um eine Sicherheitskonfiguration für einen EMR-Cluster anzugeben. Sie können Sicherheitskonfigurationen mit Amazon EMR Version 4.8.0 oder höher verwenden.aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --security-configurationmySecurityConfiguration
Beispiel 15: Um einen Cluster mit zusätzlichen EBS-Speichervolumes zu erstellen, die für die Instanzgruppen konfiguriert sind
Bei der Angabe zusätzlicher EBS-Volumes sind die folgenden Argumente erforderlich:
VolumeType
,SizeInGB
ifEbsBlockDeviceConfigs
ist angegeben.Im folgenden
create-cluster
Beispiel wird ein Cluster mit mehreren EBS-Volumes erstellt, die an EC2 Instances in der Core-Instanzgruppe angehängt sind.aws emr create-cluster \ --release-label
emr-5.9.0
\ --use-default-roles \ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=d2.xlarge
'InstanceGroupType=CORE,InstanceCount=2,InstanceType=d2.xlarge,EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,SizeInGB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iops=100},VolumesPerInstance=4}]}
' \ --auto-terminateIm folgenden Beispiel wird ein Cluster mit mehreren EBS-Volumes erstellt, die an EC2 Instances in der Master-Instanzgruppe angehängt sind.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --use-default-roles \ --instance-groups 'InstanceGroupType=MASTER, InstanceCount=1, InstanceType=d2.xlarge, EbsConfiguration={EbsOptimized=true, EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=io1, SizeInGB=100, Iops=100}},{VolumeSpecification={VolumeType=standard,SizeInGB=50},VolumesPerInstance=3}]}
'InstanceGroupType=CORE,InstanceCount=2,InstanceType=d2.xlarge
\ --auto-terminateBeispiel 16: Um einen Cluster mit einer automatischen Skalierungsrichtlinie zu erstellen
Mit Amazon EMR Version 4.0 und höher können Sie Kern- und Task-Instance-Gruppen automatische Skalierungsrichtlinien zuordnen. Die automatische Skalierungsrichtlinie fügt EC2 Instances als Reaktion auf eine CloudWatch Amazon-Metrik dynamisch hinzu und entfernt sie. Weitere Informationen finden Sie unter Using Automatic Scaling in Amazon EMR < https://docs.aws.amazon.com/emr/ latest/ManagementGuide/emr -automatic-scaling.html>`_ im Amazon EMR Management Guide.
Wenn Sie eine automatische Skalierungsrichtlinie anhängen, müssen Sie auch die Standardrolle für die automatische Skalierung angeben.
--auto-scaling-role EMR_AutoScaling_DefaultRole
Das folgende
create-cluster
Beispiel spezifiziert die automatische Skalierungsrichtlinie für dieCORE
Instanzgruppe mithilfe desAutoScalingPolicy
Arguments mit einer eingebetteten JSON-Struktur, die die Konfiguration der Skalierungsrichtlinie spezifiziert. Bei Instanzgruppen mit einer eingebetteten JSON-Struktur muss die gesamte Sammlung von Argumenten in einfache Anführungszeichen eingeschlossen sein. Die Verwendung von einfachen Anführungszeichen ist für Instanzgruppen ohne eingebettete JSON-Struktur optional.aws emr create-cluster --release-label
emr-5.9.0
\ --use-default-roles --auto-scaling-roleEMR_AutoScaling_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceType=d2.xlarge,InstanceCount=1
'InstanceGroupType=CORE,InstanceType=d2.xlarge,InstanceCount=2,AutoScalingPolicy={Constraints={MinCapacity=1,MaxCapacity=5},Rules=[{Name=TestRule,Description=TestDescription,Action={Market=ON_DEMAND,SimpleScalingPolicyConfiguration={AdjustmentType=EXACT_CAPACITY,ScalingAdjustment=2}},Trigger={CloudWatchAlarmDefinition={ComparisonOperator=GREATER_THAN,EvaluationPeriods=5,MetricName=TestMetric,Namespace=EMR,Period=3,Statistic=MAXIMUM,Threshold=4.5,Unit=NONE,Dimensions=[{Key=TestKey,Value=TestValue}]}}}]}
'Das folgende Beispiel verwendet eine JSON-Datei
instancegroupconfig.json
,, um die Konfiguration aller Instanzgruppen in einem Cluster anzugeben. Die JSON-Datei spezifiziert die Konfiguration der automatischen Skalierungsrichtlinie für die Kerninstanzgruppe.aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsfile://myfolder/instancegroupconfig.json
\ --auto-scaling-roleEMR_AutoScaling_DefaultRole
Inhalt von
instancegroupconfig.json
:[ { "InstanceCount": 1, "Name": "MyMasterIG", "InstanceGroupType": "MASTER", "InstanceType": "m4.large" }, { "InstanceCount": 2, "Name": "MyCoreIG", "InstanceGroupType": "CORE", "InstanceType": "m4.large", "AutoScalingPolicy": { "Constraints": { "MinCapacity": 2, "MaxCapacity": 10 }, "Rules": [ { "Name": "Default-scale-out", "Description": "Replicates the default scale-out rule in the console for YARN memory.", "Action": { "SimpleScalingPolicyConfiguration": { "AdjustmentType": "CHANGE_IN_CAPACITY", "ScalingAdjustment": 1, "CoolDown": 300 } }, "Trigger": { "CloudWatchAlarmDefinition": { "ComparisonOperator": "LESS_THAN", "EvaluationPeriods": 1, "MetricName": "YARNMemoryAvailablePercentage", "Namespace": "AWS/ElasticMapReduce", "Period": 300, "Threshold": 15, "Statistic": "AVERAGE", "Unit": "PERCENT", "Dimensions": [ { "Key": "JobFlowId", "Value": "${emr.clusterId}" } ] } } } ] } } ]
Beispiel 17: Fügen Sie beim Erstellen eines Clusters benutzerdefinierte JAR-Schritte hinzu
Das folgende
create-cluster
Beispiel fügt Schritte hinzu, indem eine in Amazon S3 gespeicherte JAR-Datei angegeben wird. Die Schritte leiten die Arbeit an einen Cluster weiter. Die in der JAR-Datei definierte Hauptfunktion wird ausgeführt, nachdem EC2 Instanzen bereitgestellt, alle Bootstrap-Aktionen ausgeführt und Anwendungen installiert wurden. Die Schritte werden mit angegeben.Type=CUSTOM_JAR
Benutzerdefinierte JAR-Schritte erfordern den
Jar=
Parameter, der den Pfad und den Dateinamen der JAR angibt. Optionale Parameter sindType
Name
,ActionOnFailure
,Args
, undMainClass
. Wenn die Hauptklasse nicht angegeben ist, sollte die JAR-Datei diesMain-Class
in ihrer Manifestdatei angeben.aws emr create-cluster \ --steps
Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,Args=arg1,arg2,arg3
Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateBeispiel 18: Um Streaming-Schritte beim Erstellen eines Clusters hinzuzufügen
In den folgenden
create-cluster
Beispielen wird einem Cluster ein Streaming-Schritt hinzugefügt, der beendet wird, nachdem alle Schritte ausgeführt wurden. Streaming-Schritte erfordern ParameterType
undArgs
. Die optionalen Parameter für Streaming-Schritte sindName
undActionOnFailure
.Das folgende Beispiel spezifiziert den Inline-Schritt.
aws emr create-cluster \ --steps Type=STREAMING,Name='Streaming Program',ActionOnFailure=CONTINUE,Args=[-files,s3://elasticmapreduce/samples/wordcount/wordSplitter.py,-mapper,wordSplitter.py,-reducer,aggregate,-input,s3://elasticmapreduce/samples/wordcount/input,-output,s3://mybucket/wordcount/output] \ --release-label
emr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateIm folgenden Beispiel wird eine lokal gespeicherte JSON-Konfigurationsdatei mit dem Namen verwendet
multiplefiles.json
. Die JSON-Konfiguration spezifiziert mehrere Dateien. Um mehrere Dateien innerhalb eines Schritts anzugeben, müssen Sie eine JSON-Konfigurationsdatei verwenden, um den Schritt anzugeben. JSON-Argumente müssen Optionen und Werte als eigene Elemente in der Liste enthalten.aws emr create-cluster \ --steps
file://./multiplefiles.json
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateInhalt von
multiplefiles.json
:[ { "Name": "JSON Streaming Step", "Args": [ "-files", "s3://elasticmapreduce/samples/wordcount/wordSplitter.py", "-mapper", "wordSplitter.py", "-reducer", "aggregate", "-input", "s3://elasticmapreduce/samples/wordcount/input", "-output", "s3://mybucket/wordcount/output" ], "ActionOnFailure": "CONTINUE", "Type": "STREAMING" } ]
Beispiel 19: Um Hive-Schritte beim Erstellen eines Clusters hinzuzufügen
Im folgenden Beispiel werden beim Erstellen eines Clusters Hive-Schritte hinzugefügt. Hive-Schritte erfordern Parameter
Type
und.Args
Die optionalen Parameter für Hive-Schritte sindName
und.ActionOnFailure
aws emr create-cluster \ --steps Type=HIVE,Name='Hive program',ActionOnFailure=CONTINUE,ActionOnFailure=TERMINATE_CLUSTER,Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/model-build.q,-d,INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://mybucket/hive-ads/output/2014-04-18/11-07-32,-d,LIBS=s3://elasticmapreduce/samples/hive-ads/libs] \ --applications
Name=Hive
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Beispiel 20: Um Pig-Schritte beim Erstellen eines Clusters hinzuzufügen
Im folgenden Beispiel werden Pig-Schritte beim Erstellen eines Clusters hinzugefügt. Die erforderlichen Parameter für Pig-Schritte sind
Type
undArgs
. Die optionalen Parameter für Pig-Schritte sindName
undActionOnFailure
.aws emr create-cluster \ --steps Type=PIG,Name='Pig program',ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://mybucket/pig-apache/output] \ --applications
Name=Pig
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Beispiel 21: Um Bootstrap-Aktionen hinzuzufügen
Im folgenden
create-cluster
Beispiel werden zwei Bootstrap-Aktionen ausgeführt, die als Skripts definiert sind und in Amazon S3 gespeichert sind.aws emr create-cluster \ --bootstrap-actions
Path=s3://mybucket/myscript1,Name=BootstrapAction1,Args=[arg1,arg2]
Path=s3://mybucket/myscript2,Name=BootstrapAction2,Args=[arg1,arg2]
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateBeispiel 22: Um EMRFS Consistent View zu aktivieren und die Einstellungen und anzupassen RetryCount RetryPeriod
Im folgenden
create-cluster
Beispiel werden die Anzahl der Wiederholungen und der Wiederholungszeitraum für die konsistente EMRFS-Ansicht angegeben. Das ArgumentConsistent=true
ist erforderlich.aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsConsistent=true,RetryCount=6,RetryPeriod=30
Im folgenden Beispiel wird dieselbe EMRFS-Konfiguration wie im vorherigen Beispiel angegeben, wobei eine lokal gespeicherte JSON-Konfigurationsdatei mit dem Namen verwendet wird.
emrfsconfig.json
aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsfile://emrfsconfig.json
Inhalt von
emrfsconfig.json
:{ "Consistent": true, "RetryCount": 6, "RetryPeriod": 30 }
Beispiel 23: Um einen Cluster mit konfiguriertem Kerberos zu erstellen
In den folgenden
create-cluster
Beispielen wird ein Cluster mithilfe einer Sicherheitskonfiguration mit aktiviertem Kerberos erstellt und Kerberos-Parameter für den verwendeten Cluster eingerichtet.--kerberos-attributes
Mit dem folgenden Befehl werden Kerberos-Attribute für den Inline-Cluster angegeben.
aws emr create-cluster \ --instance-type
m3.xlarge
\ --release-labelemr-5.10.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --security-configurationmySecurityConfiguration
\ --kerberos-attributesRealm=EC2.INTERNAL,KdcAdminPassword=123,CrossRealmTrustPrincipalPassword=123
Der folgende Befehl gibt dieselben Attribute an, verweist jedoch auf eine lokal gespeicherte JSON-Datei mit dem Namen.
kerberos_attributes.json
In diesem Beispiel wird die Datei in demselben Verzeichnis gespeichert, in dem Sie den Befehl ausführen. Sie können auch auf eine in Amazon S3 gespeicherte Konfigurationsdatei verweisen.aws emr create-cluster \ --instance-type
m3.xlarge
\ --release-labelemr-5.10.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --security-configurationmySecurityConfiguration
\ --kerberos-attributesfile://kerberos_attributes.json
Inhalt von
kerberos_attributes.json
:{ "Realm": "EC2.INTERNAL", "KdcAdminPassword": "123", "CrossRealmTrustPrincipalPassword": "123", }
Im folgenden
create-cluster
Beispiel wird ein Amazon EMR-Cluster erstellt, der die--instance-groups
Konfiguration verwendet und über eine verwaltete Skalierungsrichtlinie verfügt.aws emr create-cluster \ --release-label
emr-5.30.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
--managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=2,MaximumCapacityUnits=4,UnitType=Instances}'Im folgenden
create-cluster
Beispiel wird ein Amazon EMR-Cluster erstellt, der die „-- log-encryption-kms-key -ID“ verwendet, um die für die Protokollverschlüsselung verwendete KMS-Schlüssel-ID zu definieren.aws emr create-cluster \ --release-label
emr-5.30.0
\ --log-uris3://amzn-s3-demo-bucket/myLog
\ --log-encryption-kms-key-idarn:aws:kms:us-east-1:110302272565:key/dd559181-283e-45d7-99d1-66da348c4d33
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Im folgenden
create-cluster
Beispiel wird ein Amazon EMR-Cluster erstellt, der die Konfiguration „--placement-group-configs“ verwendet, um Master-Knoten mithilfe der Platzierungsstrategie in einem Hochverfügbarkeits-Cluster (HA) innerhalb einer EC2 Platzierungsgruppe zuSPREAD
platzieren.aws emr create-cluster \ --release-label
emr-5.30.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=3,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large
\ --placement-group-configsInstanceRole=MASTER
Im folgenden
create-cluster
Beispiel wird ein Amazon EMR-Cluster erstellt, der die Konfiguration „--auto-termination-policy“ verwendet, um einen Schwellenwert für die automatische Beendigung des Leerlaufs für den Cluster festzulegen.aws emr create-cluster \ --release-label
emr-5.34.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large
\ --auto-termination-policyIdleTimeout=100
Im folgenden
create-cluster
Beispiel wird ein Amazon EMR-Cluster erstellt, der „--os-release-label“ verwendet, um eine Amazon Linux-Version für den Clusterstart zu definierenaws emr create-cluster \ --release-label
emr-6.6.0
\ --os-release-label2.0.20220406.1
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large
Beispiel 24: So geben Sie die Attribute eines EBS-Root-Volumes an: Größe, IOPS und Durchsatz für Cluster-Instances, die mit EMR-Versionen 6.15.0 und höher erstellt wurden
Im folgenden
create-cluster
Beispiel wird ein Amazon EMR-Cluster erstellt, der Root-Volume-Attribute verwendet, um Root-Volume-Spezifikationen für die EC2 Instances zu konfigurieren.aws emr create-cluster \ --name
"Cluster with My Custom AMI"
\ --custom-ami-idami-a518e6df
\ --ebs-root-volume-size20
\ --ebs-root-volume-iops3000
\ --ebs-root-volume-throughput125
\ --release-labelemr-6.15.0
\ --use-default-roles \ --instance-count2
\ --instance-typem4.large
-
Einzelheiten zur API finden Sie unter CreateClusterExamples AWS CLI
Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungcreate-default-roles
.
- AWS CLI
-
1. Um die Standard-IAM-Rolle für zu erstellen EC2
Befehl:
aws emr create-default-roles
Ausgabe:
If the role already exists then the command returns nothing. If the role does not exist then the output will be: [ { "RolePolicy": { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:*", "dynamodb:*", "ec2:Describe*", "elasticmapreduce:Describe*", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSteps", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:MergeShards", "kinesis:PutRecord", "kinesis:SplitShard", "rds:Describe*", "s3:*", "sdb:*", "sns:*", "sqs:*" ], "Resource": "*", "Effect": "Allow" } ] }, "Role": { "AssumeRolePolicyDocument": { "Version": "2008-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROAIQ5SIQUGL5KMYBJX6", "CreateDate": "2015-06-09T17:09:04.602Z", "RoleName": "EMR_EC2_DefaultRole", "Path": "/", "Arn": "arn:aws:iam::176430881729:role/EMR_EC2_DefaultRole" } }, { "RolePolicy": { "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotInstanceRequests", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteTags", "ec2:DescribeAvailabilityZones", "ec2:DescribeAccountAttributes", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeKeyPairs", "ec2:DescribePrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcs", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:GetRole", "iam:GetRolePolicy", "iam:ListInstanceProfiles", "iam:ListRolePolicies", "iam:PassRole", "s3:CreateBucket", "s3:Get*", "s3:List*", "sdb:BatchPutAttributes", "sdb:Select", "sqs:CreateQueue", "sqs:Delete*", "sqs:GetQueue*", "sqs:ReceiveMessage" ], "Resource": "*", "Effect": "Allow" } ] }, "Role": { "AssumeRolePolicyDocument": { "Version": "2008-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Sid": "", "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" } } ] }, "RoleId": "AROAI3SRVPPVSRDLARBPY", "CreateDate": "2015-06-09T17:09:10.401Z", "RoleName": "EMR_DefaultRole", "Path": "/", "Arn": "arn:aws:iam::176430881729:role/EMR_DefaultRole" } } ]
-
Einzelheiten zur API finden Sie CreateDefaultRoles
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungcreate-security-configuration
.
- AWS CLI
-
1. Um eine Sicherheitskonfiguration zu erstellen, bei der die Verschlüsselung während der Übertragung mit PEM für den Zertifikatsanbieter und die Verschlüsselung im Ruhezustand mit SSE-S3 für S3-Verschlüsselung und AWS-KMS für den lokalen Festplattenschlüsselanbieter aktiviert ist
Befehl:
aws emr create-security-configuration --name MySecurityConfig --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : true, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "PEM", "S3Object" : "s3://mycertstore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "SSE-S3" }, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
Ausgabe:
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }
JSON-Äquivalent (Inhalt von security_configuration.json):
{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://mycertstore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }
Befehl (mit security_configuration.json):
aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json
Ausgabe:
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }
2. Um eine Sicherheitskonfiguration mit aktiviertem Kerberos mithilfe von clusterdedifiziertem KDC und realmübergreifendem Vertrauen zu erstellen
Befehl:
aws emr create-security-configuration --name MySecurityConfig --security-configuration '{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24, "CrossRealmTrustConfiguration": { "Realm": "AD.DOMAIN.COM", "Domain": "ad.domain.com", "AdminServer": "ad.domain.com", "KdcServer": "ad.domain.com" } } } } }'
Ausgabe:
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }
JSON-Äquivalent (Inhalt von security_configuration.json):
{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24, "CrossRealmTrustConfiguration": { "Realm": "AD.DOMAIN.COM", "Domain": "ad.domain.com", "AdminServer": "ad.domain.com", "KdcServer": "ad.domain.com" } } } } }
Befehl (mit security_configuration.json):
aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json
Ausgabe:
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }
-
Einzelheiten zur API finden Sie in der Befehlsreferenz CreateSecurityConfiguration
.AWS CLI
-
Das folgende Codebeispiel zeigt die Verwendungdelete-security-configuration
.
- AWS CLI
-
Um eine Sicherheitskonfiguration in der aktuellen Region zu löschen
Befehl:
aws emr delete-security-configuration --name MySecurityConfig
Ausgabe:
None
-
Einzelheiten zur API finden Sie DeleteSecurityConfiguration
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungdescribe-cluster
.
- AWS CLI
-
Befehl:
aws emr describe-cluster --cluster-id j-XXXXXXXX
Ausgabe:
For release-label based uniform instance groups cluster: { "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1436475075.199, "CreationDateTime": 1436474656.563, }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting for steps to run" } }, "Ec2InstanceAttributes": { "ServiceAccessSecurityGroup": "sg-xxxxxxxx", "EmrManagedMasterSecurityGroup": "sg-xxxxxxxx", "IamInstanceProfile": "EMR_EC2_DefaultRole", "Ec2KeyName": "myKey", "Ec2AvailabilityZone": "us-east-1c", "EmrManagedSlaveSecurityGroup": "sg-yyyyyyyyy" }, "Name": "My Cluster", "ServiceRole": "EMR_DefaultRole", "Tags": [], "TerminationProtected": true, "UnhealthyNodeReplacement": true, "ReleaseLabel": "emr-4.0.0", "NormalizedInstanceHours": 96, "InstanceGroups": [ { "RequestedInstanceCount": 2, "Status": { "Timeline": { "ReadyDateTime": 1436475074.245, "CreationDateTime": 1436474656.564, "EndDateTime": 1436638158.387 }, "State": "RUNNING", "StateChangeReason": { "Message": "", } }, "Name": "CORE", "InstanceGroupType": "CORE", "Id": "ig-YYYYYYY", "Configurations": [], "InstanceType": "m3.large", "Market": "ON_DEMAND", "RunningInstanceCount": 2 }, { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1436475074.245, "CreationDateTime": 1436474656.564, "EndDateTime": 1436638158.387 }, "State": "RUNNING", "StateChangeReason": { "Message": "", } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "Id": "ig-XXXXXXXXX", "Configurations": [], "InstanceType": "m3.large", "Market": "ON_DEMAND", "RunningInstanceCount": 1 } ], "Applications": [ { "Name": "Hadoop" } ], "VisibleToAllUsers": true, "BootstrapActions": [], "MasterPublicDnsName": "ec2-54-147-144-78.compute-1.amazonaws.com", "AutoTerminate": false, "Id": "j-XXXXXXXX", "Configurations": [ { "Properties": { "fs.s3.consistent.retryPeriodSeconds": "20", "fs.s3.enableServerSideEncryption": "true", "fs.s3.consistent": "false", "fs.s3.consistent.retryCount": "2" }, "Classification": "emrfs-site" } ] } } For release-label based instance fleet cluster: { "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1487897289.705, "CreationDateTime": 1487896933.942 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting for steps to run" } }, "Ec2InstanceAttributes": { "EmrManagedMasterSecurityGroup": "sg-xxxxx", "RequestedEc2AvailabilityZones": [], "RequestedEc2SubnetIds": [], "IamInstanceProfile": "EMR_EC2_DefaultRole", "Ec2AvailabilityZone": "us-east-1a", "EmrManagedSlaveSecurityGroup": "sg-xxxxx" }, "Name": "My Cluster", "ServiceRole": "EMR_DefaultRole", "Tags": [], "TerminationProtected": false, "UnhealthyNodeReplacement": false, "ReleaseLabel": "emr-5.2.0", "NormalizedInstanceHours": 472, "InstanceCollectionType": "INSTANCE_FLEET", "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1487897212.74, "CreationDateTime": 1487896933.948 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 1, "Name": "MASTER", "InstanceFleetType": "MASTER", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "TargetSpotCapacity": 1, "ProvisionedOnDemandCapacity": 0, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m3.xlarge", "WeightedCapacity": 1 } ], "Id": "if-xxxxxxx", "TargetOnDemandCapacity": 0 } ], "Applications": [ { "Version": "2.7.3", "Name": "Hadoop" } ], "ScaleDownBehavior": "TERMINATE_AT_INSTANCE_HOUR", "VisibleToAllUsers": true, "BootstrapActions": [], "MasterPublicDnsName": "ec2-xxx-xx-xxx-xx.compute-1.amazonaws.com", "AutoTerminate": false, "Id": "j-xxxxx", "Configurations": [] } } For ami based uniform instance group cluster: { "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1399400564.432, "CreationDateTime": 1399400268.62 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting for steps to run" } }, "Ec2InstanceAttributes": { "IamInstanceProfile": "EMR_EC2_DefaultRole", "Ec2AvailabilityZone": "us-east-1c" }, "Name": "My Cluster", "Tags": [], "TerminationProtected": true, "UnhealthyNodeReplacement": true, "RunningAmiVersion": "2.5.4", "InstanceGroups": [ { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1399400558.848, "CreationDateTime": 1399400268.621 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "Master instance group", "InstanceGroupType": "MASTER", "InstanceType": "m1.small", "Id": "ig-ABCD", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }, { "RequestedInstanceCount": 2, "Status": { "Timeline": { "ReadyDateTime": 1399400564.439, "CreationDateTime": 1399400268.621 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "Core instance group", "InstanceGroupType": "CORE", "InstanceType": "m1.small", "Id": "ig-DEF", "Market": "ON_DEMAND", "RunningInstanceCount": 2 } ], "Applications": [ { "Version": "1.0.3", "Name": "hadoop" } ], "BootstrapActions": [], "VisibleToAllUsers": false, "RequestedAmiVersion": "2.4.2", "LogUri": "s3://myLogUri/", "AutoTerminate": false, "Id": "j-XXXXXXXX" } }
-
Einzelheiten zur API finden Sie DescribeCluster
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungdescribe-step
.
- AWS CLI
-
Der folgende Befehl beschreibt einen Schritt mit der Schritt-ID
s-3LZC0QUT43AM
in einem Cluster mit der Cluster-IDj-3SD91U2E1L2QX
:aws emr describe-step --cluster-id
j-3SD91U2E1L2QX
--step-ids-3LZC0QUT43AM
Ausgabe:
{ "Step": { "Status": { "Timeline": { "EndDateTime": 1433200470.481, "CreationDateTime": 1433199926.597, "StartDateTime": 1433200404.959 }, "State": "COMPLETED", "StateChangeReason": {} }, "Config": { "Args": [ "s3://us-west-2.elasticmapreduce/libs/hive/hive-script", "--base-path", "s3://us-west-2.elasticmapreduce/libs/hive/", "--install-hive", "--hive-versions", "0.13.1" ], "Jar": "s3://us-west-2.elasticmapreduce/libs/script-runner/script-runner.jar", "Properties": {} }, "Id": "s-3LZC0QUT43AM", "ActionOnFailure": "TERMINATE_CLUSTER", "Name": "Setup hive" } }
-
Einzelheiten zur API finden Sie DescribeStep
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungget
.
- AWS CLI
-
Im Folgenden wird das
hadoop-examples.jar
Archiv von der Master-Instance in einem Cluster mit der Cluster-ID heruntergeladenj-3SD91U2E1L2QX
:aws emr get --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
--src/home/hadoop-examples.jar
--dest~
-
Einzelheiten zur API finden Sie unter Get
in AWS CLI Command Reference.
-
Das folgende Codebeispiel zeigt die Verwendunglist-clusters
.
- AWS CLI
-
Der folgende Befehl listet alle aktiven EMR-Cluster in der aktuellen Region auf:
aws emr list-clusters --active
Ausgabe:
{ "Clusters": [ { "Status": { "Timeline": { "ReadyDateTime": 1433200405.353, "CreationDateTime": 1433199926.596 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 6, "Id": "j-3SD91U2E1L2QX", "Name": "my-cluster" } ] }
-
Einzelheiten zur API finden Sie ListClusters
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendunglist-instance-fleets
.
- AWS CLI
-
Um Konfigurationsdetails von Instance-Flotten in einem Cluster abzurufen
In diesem Beispiel werden die Details der Instanzflotten im angegebenen Cluster aufgeführt.
Befehl:
list-instance-fleets --cluster-id 'j-12ABCDEFGHI34JK'
Ausgabe:
{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 6, "Name": "CORE", "InstanceFleetType": "CORE", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "ProvisionedOnDemandCapacity": 2, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m3.xlarge", "WeightedCapacity": 2 } ], "Id": "if-1ABC2DEFGHIJ3" }, { "Status": { "Timeline": { "ReadyDateTime": 1488759058.598, "CreationDateTime": 1488758719.811 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 0, "Name": "MASTER", "InstanceFleetType": "MASTER", "ProvisionedOnDemandCapacity": 1, "InstanceTypeSpecifications": [ { "BidPriceAsPercentageOfOnDemandPrice": 100.0, "InstanceType": "m3.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ] }
-
Einzelheiten zur API finden Sie ListInstanceFleets
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendunglist-instances
.
- AWS CLI
-
Der folgende Befehl listet alle Instances in einem Cluster mit der Cluster-ID auf
j-3C6XNQ39VR9WL
:aws emr list-instances --cluster-id
j-3C6XNQ39VR9WL
Ausgabe:
For a uniform instance group based cluster { "Instances": [ { "Status": { "Timeline": { "ReadyDateTime": 1433200400.03, "CreationDateTime": 1433199960.152 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-f19ecfee", "PublicDnsName": "ec2-52-52-41-150.us-west-2.compute.amazonaws.com", "PrivateDnsName": "ip-172-21-11-216.us-west-2.compute.internal", "PublicIpAddress": "52.52.41.150", "Id": "ci-3NNHQUQ2TWB6Y", "PrivateIpAddress": "172.21.11.216" }, { "Status": { "Timeline": { "ReadyDateTime": 1433200400.031, "CreationDateTime": 1433199949.102 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-1feee4c2", "PublicDnsName": "ec2-52-63-246-32.us-west-2.compute.amazonaws.com", "PrivateDnsName": "ip-172-31-24-130.us-west-2.compute.internal", "PublicIpAddress": "52.63.246.32", "Id": "ci-GAOCMKNKDCV7", "PrivateIpAddress": "172.21.11.215" }, { "Status": { "Timeline": { "ReadyDateTime": 1433200400.031, "CreationDateTime": 1433199949.102 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-15cfeee3", "PublicDnsName": "ec2-52-25-246-63.us-west-2.compute.amazonaws.com", "PrivateDnsName": "ip-172-31-24-129.us-west-2.compute.internal", "PublicIpAddress": "52.25.246.63", "Id": "ci-2W3TDFFB47UAD", "PrivateIpAddress": "172.21.11.214" } ] } For a fleet based cluster: { "Instances": [ { "Status": { "Timeline": { "ReadyDateTime": 1487810810.878, "CreationDateTime": 1487810588.367, "EndDateTime": 1488022990.924 }, "State": "TERMINATED", "StateChangeReason": { "Message": "Instance was terminated." } }, "Ec2InstanceId": "i-xxxxx", "InstanceFleetId": "if-xxxxx", "EbsVolumes": [], "PublicDnsName": "ec2-xx-xxx-xxx-xxx.compute-1.amazonaws.com", "InstanceType": "m3.xlarge", "PrivateDnsName": "ip-xx-xx-xxx-xx.ec2.internal", "Market": "SPOT", "PublicIpAddress": "xx.xx.xxx.xxx", "Id": "ci-xxxxx", "PrivateIpAddress": "10.47.191.80" } ] }
-
Einzelheiten zur API finden Sie ListInstances
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendunglist-security-configurations
.
- AWS CLI
-
Um Sicherheitskonfigurationen in der aktuellen Region aufzulisten
Befehl:
aws emr list-security-configurations
Ausgabe:
{ "SecurityConfigurations": [ { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-1" }, { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-2" } ] }
-
Einzelheiten zur API finden Sie ListSecurityConfigurations
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendunglist-steps
.
- AWS CLI
-
Der folgende Befehl listet alle Schritte in einem Cluster mit der Cluster-ID auf
j-3SD91U2E1L2QX
:aws emr list-steps --cluster-id
j-3SD91U2E1L2QX
-
Einzelheiten zur API finden Sie ListSteps
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungmodify-cluster-attributes
.
- AWS CLI
-
Der folgende Befehl legt die Sichtbarkeit eines EMR-Clusters mit der ID
j-301CDNY0J5XM4
für alle Benutzer fest:aws emr modify-cluster-attributes --cluster-id
j-301CDNY0J5XM4
--visible-to-all-users-
Einzelheiten zur API finden Sie ModifyClusterAttributes
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungmodify-instance-fleet
.
- AWS CLI
-
Um die Zielkapazitäten einer Instance-Flotte zu ändern
In diesem Beispiel werden die Zielkapazitäten On-Demand und Spot für die angegebene Instance-Flotte auf 1 geändert.
Befehl:
aws emr modify-instance-fleet --cluster-id '
j-12ABCDEFGHI34JK
' --instance-fleet InstanceFleetId='if-2ABC4DEFGHIJ4',TargetOnDemandCapacity=1,TargetSpotCapacity=1-
Einzelheiten zur API finden Sie ModifyInstanceFleet
unter AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungput
.
- AWS CLI
-
Der folgende Befehl lädt eine Datei mit dem Namen
healthcheck.sh
auf die Master-Instance in einem Cluster mit der Cluster-IDj-3SD91U2E1L2QX
hoch:aws emr put --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
--src~/scripts/healthcheck.sh
--dest/home/hadoop/bin/healthcheck.sh
-
Einzelheiten zur API finden Sie unter Referenz zum Einfügen
von AWS CLI Befehlen.
-
Das folgende Codebeispiel zeigt die Verwendungremove-tags
.
- AWS CLI
-
Der folgende Befehl entfernt ein Tag mit dem Schlüssel
prod
aus einem Cluster mit der Cluster-IDj-3SD91U2E1L2QX
:aws emr remove-tags --resource-id
j-3SD91U2E1L2QX
--tag-keysprod
-
Einzelheiten zur API finden Sie RemoveTags
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungschedule-hbase-backup
.
- AWS CLI
-
Hinweis: Dieser Befehl kann nur mit HBase AMI-Versionen 2.x und 3.x verwendet werden
1. Um ein vollständiges HBase Backup zu planen >>>>>>> 06ab6d6e13564b5733d75abaf3b599f93cf39a23
Befehl:
aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type full --dir s3://amzn-s3-demo-bucket/backup --interval 10 --unit hours --start-time 2014-04-21T05:26:10Z --consistent
Ausgabe:
None
2. Um ein inkrementelles Backup HBase zu planen
Befehl:
aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type incremental --dir s3://amzn-s3-demo-bucket/backup --interval 30 --unit minutes --start-time 2014-04-21T05:26:10Z --consistent
Ausgabe:
None
-
Einzelheiten zur API finden Sie ScheduleHbaseBackup
in der AWS CLI Befehlsreferenz.
-
Das folgende Codebeispiel zeigt die Verwendungsocks
.
- AWS CLI
-
Der folgende Befehl öffnet eine Socks-Verbindung mit der Master-Instance in einem Cluster mit der Cluster-ID
j-3SD91U2E1L2QX
:aws emr socks --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
Die Option Schlüsselpaardatei verwendet einen lokalen Pfad zu einer privaten Schlüsseldatei.
-
Einzelheiten zur API finden Sie unter Socks
in AWS CLI Command Reference.
-
Das folgende Codebeispiel zeigt die Verwendungssh
.
- AWS CLI
-
Der folgende Befehl öffnet eine SSH-Verbindung mit der Master-Instance in einem Cluster mit der Cluster-ID:
j-3SD91U2E1L2QX
aws emr ssh --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
Die Option Schlüsselpaardatei verwendet einen lokalen Pfad zu einer privaten Schlüsseldatei.
Ausgabe:
ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=10 -i /home/local/user/.ssh/mykey.pem hadoop@ec2-52-52-41-150.us-west-2.compute.amazonaws.com Warning: Permanently added 'ec2-52-52-41-150.us-west-2.compute.amazonaws.com,52.52.41.150' (ECDSA) to the list of known hosts. Last login: Mon Jun 1 23:15:38 2015 __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/ 26 package(s) needed for security, out of 39 available Run "sudo yum update" to apply all updates. -------------------------------------------------------------------------------- Welcome to Amazon Elastic MapReduce running Hadoop and Amazon Linux. Hadoop is installed in /home/hadoop. Log files are in /mnt/var/log/hadoop. Check /mnt/var/log/hadoop/steps for diagnosing step failures. The Hadoop UI can be accessed via the following commands: ResourceManager lynx http://ip-172-21-11-216:9026/ NameNode lynx http://ip-172-21-11-216:9101/ -------------------------------------------------------------------------------- [hadoop@ip-172-31-16-216 ~]$
-
Einzelheiten zur API finden Sie unter Ssh
in der AWS CLI Befehlsreferenz.
-