Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemples d'Amazon EMR utilisant AWS CLI
Les exemples de code suivants vous montrent comment effectuer des actions et implémenter des scénarios courants à l' AWS Command Line Interface aide d'Amazon EMR.
Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.
Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la façon de configurer et d'exécuter le code en contexte.
Rubriques
Actions
L'exemple de code suivant montre comment utiliseradd-instance-fleet
.
- AWS CLI
-
Pour ajouter un parc d'instances de tâches à un cluster
Cet exemple ajoute un nouveau parc d'instances de tâches au cluster spécifié.
Commande :
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}']Sortie :
{ "ClusterId": "j-12ABCDEFGHI34JK", "InstanceFleetId": "if-23ABCDEFGHI45JJ" }
-
Pour plus de détails sur l'API, reportez-vous AddInstanceFleet
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliseradd-steps
.
- AWS CLI
-
1. Pour ajouter des étapes JAR personnalisées à un cluster
Commande :
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
Paramètres requis :
Jar
Paramètres facultatifs :
Type, Name, ActionOnFailure, Args
Sortie :
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
2. Pour ajouter des étapes de streaming à un cluster
Commande :
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]
Paramètres requis :
Type, Args
Paramètres facultatifs :
Name, ActionOnFailure
Équivalent JSON (contenu de 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" } ]
REMARQUE : les arguments JSON doivent inclure des options et des valeurs en tant qu'éléments propres dans la liste.
Commande (à l'aide de step.json) :
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./step.json
Sortie :
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
3. Pour ajouter une étape de streaming contenant plusieurs fichiers à un cluster (JSON uniquement)
JSON (multiplefiles.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"] } ]
Commande :
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./multiplefiles.json
Paramètres requis :
Type, Args
Paramètres facultatifs :
Name, ActionOnFailure
Sortie :
{ "StepIds":[ "s-XXXXXXXX", ] }
4. Pour ajouter des étapes Hive à un cluster
Commande :
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]
Paramètres requis :
Type, Args
Paramètres facultatifs :
Name, ActionOnFailure
Sortie :
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
5. Pour ajouter des étapes Pig à un cluster
Commande :
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]
Paramètres requis :
Type, Args
Paramètres facultatifs :
Name, ActionOnFailure
Sortie :
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
6. Pour ajouter des étapes Impala à un cluster
Commande :
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
Paramètres requis :
Type, Args
Paramètres facultatifs :
Name, ActionOnFailure
Sortie :
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
-
Pour plus de détails sur l'API, reportez-vous AddSteps
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliseradd-tags
.
- AWS CLI
-
1. Pour ajouter des balises à un cluster
Commande :
aws emr add-tags --resource-id j-xxxxxxx --tags name="John Doe" age=29 sex=male address="123 East NW Seattle"
Sortie :
None
2. Pour répertorier les balises d'un cluster
--Commande :
aws emr describe-cluster --cluster-id
j-XXXXXXYY
--queryCluster.Tags
Sortie :
[ { "Value": "male", "Key": "sex" }, { "Value": "123 East NW Seattle", "Key": "address" }, { "Value": "John Doe", "Key": "name" }, { "Value": "29", "Key": "age" } ]
-
Pour plus de détails sur l'API, reportez-vous AddTags
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisercreate-cluster-examples
.
- AWS CLI
-
La plupart des exemples suivants supposent que vous avez spécifié votre rôle de service Amazon EMR et votre profil d' EC2 instance Amazon. Si vous ne l'avez pas encore fait, vous devez spécifier chaque rôle IAM requis ou utiliser le
--use-default-roles
paramètre lors de la création de votre cluster. Pour plus d'informations sur la spécification des rôles IAM, consultez Configurer les rôles IAM pour les autorisations Amazon EMR sur les services AWS dans le guide de gestion Amazon EMR.Exemple 1 : pour créer un cluster
L'
create-cluster
exemple suivant crée un cluster EMR simple.aws emr create-cluster \ --release-label
emr-5.14.0
\ --instance-typem4.large
\ --instance-count2
Cette commande ne produit aucun résultat.
Exemple 2 : pour créer un cluster Amazon EMR avec des rôles par défaut ServiceRole InstanceProfile
L'
create-cluster
exemple suivant crée un cluster Amazon EMR qui utilise la--instance-groups
configuration.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
Exemple 3 : pour créer un cluster Amazon EMR qui utilise un parc d'instances
L'
create-cluster
exemple suivant crée un cluster Amazon EMR qui utilise la--instance-fleets
configuration, en spécifiant deux types d'instances pour chaque flotte et deux EC2 sous-réseaux.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}'}Exemple 4 : pour créer un cluster avec des rôles par défaut
L'
create-cluster
exemple suivant utilise le--use-default-roles
paramètre pour spécifier le rôle de service et le profil d'instance par défaut.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-terminateExemple 5 : pour créer un cluster et spécifier les applications à installer
L'
create-cluster
exemple suivant utilise le--applications
paramètre pour spécifier les applications installées par Amazon EMR. Cet exemple installe Hadoop, Hive et Pig.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-terminateExemple 6 : pour créer un cluster incluant Spark
L'exemple suivant installe Spark.
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-terminateExemple 7 : Pour spécifier une AMI personnalisée à utiliser pour les instances de cluster
L'
create-cluster
exemple suivant crée une instance de cluster basée sur l'AMI Amazon Linux avec IDami-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
Exemple 8 : Pour personnaliser les configurations des applications
Les exemples suivants utilisent le
--configurations
paramètre pour spécifier un fichier de configuration JSON contenant des personnalisations d'applications pour Hadoop. Pour de plus amples informations, veuillez consulter Configuration des applications dans le guide de version Amazon EMR.Contenu de
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" } } ] } ]
L'exemple suivant fait référence
configurations.json
à un fichier local.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-terminateL'exemple suivant fait référence
configurations.json
à un fichier dans 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-terminateExemple 9 : pour créer un cluster avec des groupes d'instances principaux, principaux et de tâches
L'
create-cluster
exemple suivant permet--instance-groups
de spécifier le type et le nombre d' EC2 instances à utiliser pour les groupes d'instances principaux, principaux et de tâches.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
Exemple 10 : Pour spécifier qu'un cluster doit se terminer une fois toutes les étapes terminées
L'
create-cluster
exemple suivant indique que le cluster doit s'arrêter automatiquement une fois toutes les étapes terminées.--auto-terminate
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-terminateExemple 11 : pour spécifier les détails de configuration du cluster tels que la paire de EC2 clés Amazon, la configuration réseau et les groupes de sécurité
L'
create-cluster
exemple suivant crée un cluster avec la paire de EC2 clés Amazon nomméemyKey
et un profil d'instance personnalisé nommémyProfile
. Les paires de clés sont utilisées pour autoriser les connexions SSH aux nœuds du cluster, le plus souvent au nœud maître. Pour plus d'informations, consultez Utiliser une paire de EC2 clés Amazon pour les informations d'identification SSH dans le guide de gestion Amazon EMR.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-terminateL'exemple suivant crée un cluster dans un sous-réseau Amazon VPC.
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-terminateL'exemple suivant crée un cluster dans la zone de
us-east-1b
disponibilité.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
L'exemple suivant crée un cluster et spécifie uniquement les groupes de sécurité gérés par Amazon EMR.
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
L'exemple suivant crée un cluster et spécifie uniquement les groupes EC2 de sécurité Amazon supplémentaires.
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
L'exemple suivant crée un cluster et spécifie les groupes de sécurité gérés par EMR, ainsi que des groupes de sécurité supplémentaires.
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
L'exemple suivant crée un cluster dans un sous-réseau privé VPC et utilise un groupe de EC2 sécurité Amazon spécifique pour activer l'accès au service Amazon EMR, qui est requis pour les clusters situés dans des sous-réseaux privés.
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
L'exemple suivant spécifie les paramètres de configuration du groupe de sécurité à l'aide d'un fichier JSON nommé
ec2_attributes.json
qui est stocké localement. REMARQUE : les arguments JSON doivent inclure des options et des valeurs en tant qu'éléments propres dans la liste.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
Contenu de
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"] } ]
Exemple 12 : Pour activer le débogage et spécifier un URI de journal
L'
create-cluster
exemple suivant utilise le--enable-debugging
paramètre, qui vous permet d'afficher les fichiers journaux plus facilement à l'aide de l'outil de débogage de la console Amazon EMR. Le--log-uri
paramètre est obligatoire avec--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-terminateExemple 13 : Pour ajouter des balises lors de la création d'un cluster
Les balises sont des paires clé-valeur qui vous aident à identifier et à gérer les clusters. L'
create-cluster
exemple suivant utilise le--tags
paramètre pour créer trois balises pour un cluster, une avec le nom de la cléname
et la valeurShirley Rodriguez
, une seconde avec le nom de la cléage
et la valeur29
, et une troisième balise avec le nom de la clédepartment
et la valeurAnalytics
.aws emr create-cluster \ --tags name="Shirley Rodriguez"
age=29
department="Analytics" \ --release-labelemr-5.32.0
\ --instance-typem5.xlarge
\ --instance-count3
\ --use-default-rolesL'exemple suivant répertorie les balises appliquées à un cluster.
aws emr describe-cluster \ --cluster-id
j-XXXXXXYY
\ --queryCluster.Tags
Exemple 14 : Pour utiliser une configuration de sécurité qui active le chiffrement et d'autres fonctionnalités de sécurité
L'
create-cluster
exemple suivant utilise le--security-configuration
paramètre pour spécifier une configuration de sécurité pour un cluster EMR. Vous pouvez utiliser des configurations de sécurité avec Amazon EMR version 4.8.0 ou ultérieure.aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --security-configurationmySecurityConfiguration
Exemple 15 : pour créer un cluster avec des volumes de stockage EBS supplémentaires configurés pour les groupes d'instances
Lorsque vous spécifiez des volumes EBS supplémentaires, les arguments suivants sont requis :
VolumeType
,SizeInGB
siEbsBlockDeviceConfigs
est spécifié.L'
create-cluster
exemple suivant crée un cluster avec plusieurs volumes EBS attachés aux EC2 instances du groupe d'instances principal.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-terminateL'exemple suivant crée un cluster avec plusieurs volumes EBS attachés aux EC2 instances du groupe d'instances principal.
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-terminateExemple 16 : Pour créer un cluster avec une politique de dimensionnement automatique
Vous pouvez associer des politiques de dimensionnement automatique aux groupes d'instances principaux et aux groupes d'instances de tâches à l'aide d'Amazon EMR version 4.0 et ultérieure. La politique de dimensionnement automatique ajoute et supprime des EC2 instances de manière dynamique en réponse à une CloudWatch métrique Amazon. Pour plus d'informations, consultez la section Utilisation du dimensionnement automatique dans Amazon EMR < https://docs.aws.amazon.com/emr/ latest/ManagementGuide/emr -automatic-scaling.html>`_ dans le guide de gestion Amazon EMR.
Lorsque vous associez une politique de dimensionnement automatique, vous devez également spécifier le rôle par défaut pour le dimensionnement automatique à l'aide de
--auto-scaling-role EMR_AutoScaling_DefaultRole
.L'
create-cluster
exemple suivant spécifie la politique de dimensionnement automatique pour le groupe d'CORE
instances à l'aide de l'AutoScalingPolicy
argument avec une structure JSON intégrée, qui spécifie la configuration de la politique de dimensionnement. Les groupes d'instances dotés d'une structure JSON intégrée doivent avoir l'ensemble des arguments entre guillemets simples. L'utilisation de guillemets simples est facultative pour les groupes d'instances sans structure JSON intégrée.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}]}}}]}
'L'exemple suivant utilise un fichier JSON pour spécifier la configuration de tous les groupes d'instances d'un cluster.
instancegroupconfig.json
Le fichier JSON spécifie la configuration de la politique de dimensionnement automatique pour le groupe d'instances principal.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
Contenu de
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}" } ] } } } ] } } ]
Exemple 17 : Ajouter des étapes JAR personnalisées lors de la création d'un cluster
L'
create-cluster
exemple suivant ajoute des étapes en spécifiant un fichier JAR stocké dans Amazon S3. Les étapes soumettent le travail à un cluster. La fonction principale définie dans le fichier JAR s'exécute après le provisionnement EC2 des instances, l'exécution de toutes les actions d'amorçage et l'installation des applications. Les étapes sont spécifiées à l'aide deType=CUSTOM_JAR
.Les étapes JAR personnalisées nécessitent le
Jar=
paramètre, qui spécifie le chemin et le nom de fichier du JAR. Les paramètres facultatifs sontType
Name
,ActionOnFailure
,Args
, etMainClass
. Si aucune classe principale n'est spécifiée, le fichier JAR doit le spécifierMain-Class
dans son fichier manifeste.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-terminateExemple 18 : Pour ajouter des étapes de streaming lors de la création d'un cluster
Les
create-cluster
exemples suivants ajoutent une étape de streaming à un cluster qui s'arrête une fois toutes les étapes exécutées. Les étapes de streaming nécessitent des paramètresType
etArgs
. Les paramètres facultatifs des étapes de diffusion sontName
etActionOnFailure
.L'exemple suivant indique l'étape en ligne.
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-terminateL'exemple suivant utilise un fichier de configuration JSON stocké localement nommé
multiplefiles.json
. La configuration JSON spécifie plusieurs fichiers. Pour spécifier plusieurs fichiers au cours d'une étape, vous devez utiliser un fichier de configuration JSON pour spécifier l'étape. Les arguments JSON doivent inclure des options et des valeurs en tant qu'éléments propres dans la liste.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-terminateContenu de
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" } ]
Exemple 19 : Pour ajouter des étapes Hive lors de la création d'un cluster
L'exemple suivant ajoute les étapes Hive lors de la création d'un cluster. Les étapes de la ruche nécessitent des paramètres
Type
et.Args
Les paramètres optionnels des étapes de la ruche sontName
et.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
Exemple 20 : Pour ajouter des étapes Pig lors de la création d'un cluster
L'exemple suivant ajoute des étapes Pig lors de la création d'un cluster. Les paramètres requis pour les étapes du porc sont
Type
etArgs
. Les paramètres optionnels de Pig Steps sontName
etActionOnFailure
.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
Exemple 21 : Pour ajouter des actions bootstrap
L'
create-cluster
exemple suivant exécute deux actions bootstrap définies comme des scripts stockés dans Amazon S3.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-terminateExemple 22 : Pour activer la vue cohérente EMRFS et personnaliser les RetryCount paramètres et RetryPeriod
L'
create-cluster
exemple suivant indique le nombre de tentatives et la période de nouvelles tentatives pour une vue cohérente EMRFS. L'argumentConsistent=true
est obligatoire.aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsConsistent=true,RetryCount=6,RetryPeriod=30
L'exemple suivant spécifie la même configuration EMRFS que l'exemple précédent, en utilisant un fichier de configuration JSON stocké localement nommé.
emrfsconfig.json
aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsfile://emrfsconfig.json
Contenu de
emrfsconfig.json
:{ "Consistent": true, "RetryCount": 6, "RetryPeriod": 30 }
Exemple 23 : Pour créer un cluster avec Kerberos configuré
Les
create-cluster
exemples suivants créent un cluster à l'aide d'une configuration de sécurité avec Kerberos activé, et établissent les paramètres Kerberos pour le cluster utilisant.--kerberos-attributes
La commande suivante spécifie les attributs Kerberos du cluster en ligne.
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
La commande suivante spécifie les mêmes attributs, mais fait référence à un fichier JSON stocké localement nommé
kerberos_attributes.json
. Dans cet exemple, le fichier est enregistré dans le répertoire où vous exécutez la commande. Vous pouvez également référencer un fichier de configuration enregistré dans Amazon S3.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
Contenu de
kerberos_attributes.json
:{ "Realm": "EC2.INTERNAL", "KdcAdminPassword": "123", "CrossRealmTrustPrincipalPassword": "123", }
L'
create-cluster
exemple suivant crée un cluster Amazon EMR qui utilise la--instance-groups
configuration et dispose d'une politique de dimensionnement gérée.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}'L'
create-cluster
exemple suivant crée un cluster Amazon EMR qui utilise le « -- log-encryption-kms-key -id » pour définir l'ID de clé KMS utilisé pour le chiffrement des journaux.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
L'
create-cluster
exemple suivant crée un cluster Amazon EMR qui utilise la configuration « -- placement-group-configs » pour placer des nœuds maîtres dans un cluster à haute disponibilité (HA) au sein d'un groupe de placement à l'aideSPREAD
d'une EC2 stratégie de placement.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
L'
create-cluster
exemple suivant crée un cluster Amazon EMR qui utilise la configuration « -- auto-termination-policy » pour définir un seuil d'inactivité automatique pour le cluster.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
L'
create-cluster
exemple suivant crée un cluster Amazon EMR qui utilise le « -- os-release-label » pour définir une version Amazon Linux pour le lancement du cluster.aws 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
Exemple 24 : Pour spécifier les attributs d'un volume racine EBS : taille, E/S par seconde et débit pour les instances de cluster créées avec EMR versions 6.15.0 et ultérieures
L'
create-cluster
exemple suivant crée un cluster Amazon EMR qui utilise les attributs du volume racine pour configurer les spécifications des volumes racine pour les EC2 instances.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
-
Pour plus de détails sur l'API, reportez-vous CreateClusterExamples
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisercreate-default-roles
.
- AWS CLI
-
1. Pour créer le rôle IAM par défaut pour EC2
Commande :
aws emr create-default-roles
Sortie :
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" } } ]
-
Pour plus de détails sur l'API, reportez-vous CreateDefaultRoles
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisercreate-security-configuration
.
- AWS CLI
-
1. Pour créer une configuration de sécurité avec le chiffrement en transit activé avec PEM pour le fournisseur de certificats, et le chiffrement au repos activé avec SSE-S3 pour le chiffrement S3 et AWS-KMS pour le fournisseur de clé de disque local
Commande :
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" } } } }'
Sortie :
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }
Équivalent JSON (contenu de 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" } } } }
Commande (à l'aide de security_configuration.json) :
aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json
Sortie :
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }
2. Pour créer une configuration de sécurité avec Kerberos activé à l'aide d'un KDC dédié au cluster et d'une confiance entre domaines
Commande :
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" } } } } }'
Sortie :
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }
Équivalent JSON (contenu de 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" } } } } }
Commande (à l'aide de security_configuration.json) :
aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json
Sortie :
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }
-
Pour plus de détails sur l'API, reportez-vous CreateSecurityConfiguration
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdelete-security-configuration
.
- AWS CLI
-
Pour supprimer une configuration de sécurité dans la région actuelle
Commande :
aws emr delete-security-configuration --name MySecurityConfig
Sortie :
None
-
Pour plus de détails sur l'API, reportez-vous DeleteSecurityConfiguration
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdescribe-cluster
.
- AWS CLI
-
Commande :
aws emr describe-cluster --cluster-id j-XXXXXXXX
Sortie :
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" } }
-
Pour plus de détails sur l'API, reportez-vous DescribeCluster
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdescribe-step
.
- AWS CLI
-
La commande suivante décrit une étape avec l'ID d'étape
s-3LZC0QUT43AM
dans un cluster avec l'ID de clusterj-3SD91U2E1L2QX
:aws emr describe-step --cluster-id
j-3SD91U2E1L2QX
--step-ids-3LZC0QUT43AM
Sortie :
{ "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" } }
-
Pour plus de détails sur l'API, reportez-vous DescribeStep
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserget
.
- AWS CLI
-
Ce qui suit télécharge l'
hadoop-examples.jar
archive depuis l'instance principale dans un cluster avec l'ID du clusterj-3SD91U2E1L2QX
:aws emr get --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
--src/home/hadoop-examples.jar
--dest~
-
Pour plus de détails sur l'API, voir Get
in AWS CLI Command Reference.
-
L'exemple de code suivant montre comment utiliserlist-clusters
.
- AWS CLI
-
La commande suivante répertorie tous les clusters EMR actifs dans la région actuelle :
aws emr list-clusters --active
Sortie :
{ "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" } ] }
-
Pour plus de détails sur l'API, reportez-vous ListClusters
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-instance-fleets
.
- AWS CLI
-
Pour obtenir les détails de configuration des flottes d'instances d'un cluster
Cet exemple répertorie les détails des flottes d'instances du cluster spécifié.
Commande :
list-instance-fleets --cluster-id 'j-12ABCDEFGHI34JK'
Sortie :
{ "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" } ] }
-
Pour plus de détails sur l'API, reportez-vous ListInstanceFleets
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-instances
.
- AWS CLI
-
La commande suivante répertorie toutes les instances d'un cluster avec l'ID du cluster
j-3C6XNQ39VR9WL
:aws emr list-instances --cluster-id
j-3C6XNQ39VR9WL
Sortie :
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" } ] }
-
Pour plus de détails sur l'API, reportez-vous ListInstances
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-security-configurations
.
- AWS CLI
-
Pour répertorier les configurations de sécurité dans la région actuelle
Commande :
aws emr list-security-configurations
Sortie :
{ "SecurityConfigurations": [ { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-1" }, { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-2" } ] }
-
Pour plus de détails sur l'API, reportez-vous ListSecurityConfigurations
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-steps
.
- AWS CLI
-
La commande suivante répertorie toutes les étapes d'un cluster avec l'ID du cluster
j-3SD91U2E1L2QX
:aws emr list-steps --cluster-id
j-3SD91U2E1L2QX
-
Pour plus de détails sur l'API, reportez-vous ListSteps
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisermodify-cluster-attributes
.
- AWS CLI
-
La commande suivante définit la visibilité d'un cluster EMR avec l'ID
j-301CDNY0J5XM4
pour tous les utilisateurs :aws emr modify-cluster-attributes --cluster-id
j-301CDNY0J5XM4
--visible-to-all-users-
Pour plus de détails sur l'API, reportez-vous ModifyClusterAttributes
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisermodify-instance-fleet
.
- AWS CLI
-
Pour modifier les capacités cibles d'un parc d'instances
Cet exemple modifie les capacités cibles On-Demand et Spot à 1 pour le parc d'instances spécifié.
Commande :
aws emr modify-instance-fleet --cluster-id '
j-12ABCDEFGHI34JK
' --instance-fleet InstanceFleetId='if-2ABC4DEFGHIJ4',TargetOnDemandCapacity=1,TargetSpotCapacity=1-
Pour plus de détails sur l'API, reportez-vous ModifyInstanceFleet
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserput
.
- AWS CLI
-
La commande suivante télécharge un fichier nommé
healthcheck.sh
sur l'instance principale d'un cluster avec l'ID du cluster :j-3SD91U2E1L2QX
aws emr put --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
--src~/scripts/healthcheck.sh
--dest/home/hadoop/bin/healthcheck.sh
-
Pour plus de détails sur l'API, voir Put
in AWS CLI Command Reference.
-
L'exemple de code suivant montre comment utiliserremove-tags
.
- AWS CLI
-
La commande suivante supprime une balise contenant la clé
prod
d'un cluster portant l'ID du clusterj-3SD91U2E1L2QX
:aws emr remove-tags --resource-id
j-3SD91U2E1L2QX
--tag-keysprod
-
Pour plus de détails sur l'API, reportez-vous RemoveTags
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserschedule-hbase-backup
.
- AWS CLI
-
Remarque : Cette commande ne peut être utilisée qu'avec HBase les versions 2.x et 3.x de l'AMI
1. Pour planifier une HBase sauvegarde complète >>>>>> 06ab6d6e13564b5733d75abaf3b599f93cf39a23
Commande :
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
Sortie :
None
2. Pour planifier une sauvegarde incrémentielle HBase
Commande :
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
Sortie :
None
-
Pour plus de détails sur l'API, reportez-vous ScheduleHbaseBackup
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisersocks
.
- AWS CLI
-
La commande suivante ouvre une connexion Socks avec l'instance principale d'un cluster portant l'ID du cluster
j-3SD91U2E1L2QX
:aws emr socks --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
L'option de fichier de paires de clés utilise un chemin local vers un fichier de clé privée.
-
Pour plus de détails sur l'API, consultez Socks
dans AWS CLI Command Reference.
-
L'exemple de code suivant montre comment utiliserssh
.
- AWS CLI
-
La commande suivante ouvre une connexion SSH avec l'instance principale d'un cluster portant l'ID du cluster :
j-3SD91U2E1L2QX
aws emr ssh --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
L'option de fichier de paires de clés utilise un chemin local vers un fichier de clé privée.
Sortie :
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 ~]$
-
Pour plus de détails sur l'API, voir Ssh
dans AWS CLI Command Reference.
-