Hay más AWS SDK ejemplos disponibles en el GitHub repositorio de AWS Doc SDK Examples
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
EMREjemplos de Amazon que utilizan AWS CLI
En los siguientes ejemplos de código, se muestra cómo realizar acciones e implementar situaciones comunes AWS Command Line Interface con AmazonEMR.
Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.
Cada ejemplo incluye un enlace al código fuente completo, donde puede encontrar instrucciones sobre cómo configurar y ejecutar el código en su contexto.
Temas
Acciones
En el siguiente ejemplo de código se muestra cómo usar add-instance-fleet
.
- AWS CLI
-
Para añadir una flota de instancias de tareas a un clúster
En este ejemplo, se agrega una nueva flota de instancias de tareas al clúster especificado.
Comando:
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}']Salida:
{ "ClusterId": "j-12ABCDEFGHI34JK", "InstanceFleetId": "if-23ABCDEFGHI45JJ" }
-
Para API obtener más información, consulte AddInstanceFleet
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar add-steps
.
- AWS CLI
-
1. Para añadir JAR pasos personalizados a un clúster
Comando:
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
Parámetros necesarios:
Jar
Parámetros opcionales:
Type, Name, ActionOnFailure, Args
Salida:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
2. Para añadir pasos de streaming a un clúster
Comando:
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]
Parámetros necesarios:
Type, Args
Parámetros opcionales:
Name, ActionOnFailure
JSONequivalente (contenido 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" } ]
NOTE: JSON los argumentos deben incluir opciones y valores como elementos propios de la lista.
Comando (usando step.json):
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./step.json
Salida:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
3. Para añadir un paso de streaming con varios archivos a un clúster (JSONúnicamente)
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"] } ]
Comando:
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./multiplefiles.json
Parámetros necesarios:
Type, Args
Parámetros opcionales:
Name, ActionOnFailure
Salida:
{ "StepIds":[ "s-XXXXXXXX", ] }
4. Para añadir escalones de Hive a un clúster
Comando:
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]
Parámetros necesarios:
Type, Args
Parámetros opcionales:
Name, ActionOnFailure
Salida:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
5. Para añadir Pig Steps a un clúster
Comando:
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]
Parámetros necesarios:
Type, Args
Parámetros opcionales:
Name, ActionOnFailure
Salida:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
6. Para añadir escalones de Impala a un clúster
Comando:
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
Parámetros necesarios:
Type, Args
Parámetros opcionales:
Name, ActionOnFailure
Salida:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
-
Para API obtener más información, consulte AddSteps
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar add-tags
.
- AWS CLI
-
1. Para añadir etiquetas a un clúster
Comando:
aws emr add-tags --resource-id j-xxxxxxx --tags name="John Doe" age=29 sex=male address="123 East NW Seattle"
Salida:
None
2. Para enumerar las etiquetas de un clúster
--Comando:
aws emr describe-cluster --cluster-id
j-XXXXXXYY
--queryCluster.Tags
Salida:
[ { "Value": "male", "Key": "sex" }, { "Value": "123 East NW Seattle", "Key": "address" }, { "Value": "John Doe", "Key": "name" }, { "Value": "29", "Key": "age" } ]
-
Para API obtener más información, consulte AddTags
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar create-cluster-examples
.
- AWS CLI
-
En la mayoría de los ejemplos siguientes se supone que has especificado tu función de EMR servicio de Amazon y tu perfil de EC2 instancia de Amazon. Si no lo ha hecho, debe especificar cada IAM función obligatoria o utilizar el
--use-default-roles
parámetro al crear el clúster. Para obtener más información sobre la especificación de IAM funciones, consulte Configurar IAM funciones para EMR los permisos de Amazon a los AWS servicios en la Guía EMR de administración de Amazon.Ejemplo 1: Para crear un clúster
El siguiente
create-cluster
ejemplo crea un EMR clúster simple.aws emr create-cluster \ --release-label
emr-5.14.0
\ --instance-typem4.large
\ --instance-count2
Este comando no genera ninguna salida.
Ejemplo 2: Para crear un EMR clúster de Amazon con InstanceProfile funciones ServiceRole y funciones predeterminadas
El siguiente
create-cluster
ejemplo crea un EMR clúster de Amazon que usa la--instance-groups
configuración.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
Ejemplo 3: Para crear un EMR clúster de Amazon que utilice una flota de instancias
El siguiente
create-cluster
ejemplo crea un EMR clúster de Amazon que usa la--instance-fleets
configuración y especifica dos tipos de instancias para cada flota y dos EC2 subredes.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}'}Ejemplo 4: Para crear un clúster con funciones predeterminadas
En el siguiente
create-cluster
ejemplo, se utiliza el--use-default-roles
parámetro para especificar el rol de servicio y el perfil de instancia predeterminados.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-terminateEjemplo 5: Para crear un clúster y especificar las aplicaciones que se van a instalar
En el siguiente
create-cluster
ejemplo, se utiliza el--applications
parámetro para especificar las aplicaciones que EMR instala Amazon. En este ejemplo, se instalan Hadoop, Hive y 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-terminateEjemplo 6: Para crear un clúster que incluya Spark
En el siguiente ejemplo, se instala 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-terminateEjemplo 7: Para especificar una personalización para AMI utilizarla en las instancias de clúster
El siguiente
create-cluster
ejemplo crea una instancia de clúster basada en Amazon Linux AMI con 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
Ejemplo 8: Para personalizar las configuraciones de las aplicaciones
En los ejemplos siguientes, se utiliza el
--configurations
parámetro para especificar un archivo de JSON configuración que contiene personalizaciones de aplicaciones para Hadoop. Para obtener más información, consulte Configuración de aplicaciones en la Amazon EMR Release Guide.Contenidos 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" } } ] } ]
El siguiente ejemplo hace referencia
configurations.json
a un archivo 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-terminateEl siguiente ejemplo hace referencia
configurations.json
a un archivo en Amazon S3.aws emr create-cluster \ --configurations
https://s3.amazonaws.com/myBucket/configurations.json
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateEjemplo 9: Para crear un clúster con grupos de instancias principales, principales y de tareas
En el siguiente
create-cluster
ejemplo,--instance-groups
se especifica el tipo y la cantidad de EC2 instancias que se van a usar para los grupos de instancias principales, principales y de tareas.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
Ejemplo 10: Para especificar que un clúster debe terminar después de completar todos los pasos
En el siguiente
create-cluster
ejemplo--auto-terminate
se especifica que el clúster debe cerrarse automáticamente después de completar todos los pasos.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-terminateEjemplo 11: Para especificar los detalles de la configuración del clúster, como el EC2 key pair de Amazon, la configuración de la red y los grupos de seguridad
En el siguiente
create-cluster
ejemplo, se crea un clúster con el nombre del par de EC2 claves de AmazonmyKey
y el nombre de un perfil de instancia personalizadomyProfile
. Los pares de claves se utilizan para autorizar SSH las conexiones a los nodos del clúster, generalmente al nodo principal. Para obtener más información, consulte Uso de un par de EC2 claves de Amazon para SSH las credenciales en la Guía EMR de administración de Amazon.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-terminateEl siguiente ejemplo crea un clúster en una VPC subred de Amazon.
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-terminateEl siguiente ejemplo crea un clúster en la zona de
us-east-1b
disponibilidad.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
En el siguiente ejemplo, se crea un clúster y se especifican únicamente los grupos de seguridad EMR gestionados por Amazon.
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
En el siguiente ejemplo, se crea un clúster y se especifican únicamente los grupos de EC2 seguridad de Amazon adicionales.
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
En el siguiente ejemplo, se crea un clúster y se especifican los grupos de seguridad EMR gestionados, así como los grupos de seguridad adicionales.
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
En el siguiente ejemplo, se crea un clúster en una subred VPC privada y se utiliza un grupo de EC2 seguridad de Amazon específico para habilitar el acceso a los EMR servicios de Amazon, que es necesario para los clústeres de las subredes privadas.
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
En el siguiente ejemplo, se especifican los parámetros de configuración del grupo de seguridad mediante un nombre de JSON archivo
ec2_attributes.json
que se almacena localmente. NOTE: JSON los argumentos deben incluir opciones y valores como elementos propios de la lista.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
Contenidos 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"] } ]
Ejemplo 12: Para habilitar la depuración y especificar un registro URI
El siguiente
create-cluster
ejemplo usa el--enable-debugging
parámetro, que le permite ver los archivos de registro más fácilmente con la herramienta de depuración de la EMR consola de Amazon. El--log-uri
parámetro es obligatorio con--enable-debugging
.aws emr create-cluster \ --enable-debugging \ --log-uri
s3://myBucket/myLog
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateEjemplo 13: Para añadir etiquetas al crear un clúster
Las etiquetas son pares clave-valor que ayudan a identificar y gestionar los clústeres. En el siguiente
create-cluster
ejemplo, se utiliza el--tags
parámetro para crear tres etiquetas para un clúster: una con el nombrename
y el valor de la claveShirley Rodriguez
, una segunda con el nombre de la claveage
y el valor29
, y una tercera etiqueta con el nombre de la clavedepartment
y el valor.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-rolesEn el siguiente ejemplo, se enumeran las etiquetas aplicadas a un clúster.
aws emr describe-cluster \ --cluster-id
j-XXXXXXYY
\ --queryCluster.Tags
Ejemplo 14: Para usar una configuración de seguridad que habilite el cifrado y otras funciones de seguridad
En el siguiente
create-cluster
ejemplo, se utiliza el--security-configuration
parámetro para especificar una configuración de seguridad para un EMR clúster. Puedes usar configuraciones de seguridad con Amazon EMR versión 4.8.0 o posterior.aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --security-configurationmySecurityConfiguration
Ejemplo 15: Para crear un clúster con volúmenes de EBS almacenamiento adicionales configurados para los grupos de instancias
Al especificar EBS volúmenes adicionales, se requieren los siguientes argumentos:
VolumeType
,SizeInGB
siEbsBlockDeviceConfigs
se especifica.En el siguiente
create-cluster
ejemplo, se crea un clúster con varios EBS volúmenes adjuntos a EC2 las instancias del grupo de instancias 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-terminateEn el siguiente ejemplo, se crea un clúster con varios EBS volúmenes adjuntos a EC2 las instancias del grupo de instancias maestro.
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-terminateEjemplo 16: Para crear un clúster con una política de escalado automático
Puede adjuntar políticas de escalado automático a los grupos de instancias principales y de tareas mediante Amazon 4.0 y EMR versiones posteriores. La política de escalado automático añade y elimina EC2 instancias de forma dinámica en respuesta a una CloudWatch métrica de Amazon. Para obtener más información, consulte Uso del escalado automático en Amazon EMR < https://docs.aws.amazon.com/emr/ latest/ManagementGuide/emr -automatic-scaling.html>`_ en la Guía de administración de Amazon. EMR
Al adjuntar una política de escalado automático, también debe especificar el rol predeterminado para su uso.
--auto-scaling-role EMR_AutoScaling_DefaultRole
En el siguiente
create-cluster
ejemplo, se especifica la política de escalado automático del grupo deCORE
instancias mediante elAutoScalingPolicy
argumento con una JSON estructura integrada, que especifica la configuración de la política de escalado. Los grupos de instancias con una JSON estructura integrada deben tener toda la colección de argumentos entre comillas simples. El uso de comillas simples es opcional para los grupos de instancias sin una JSON estructura incrustada.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}]}}}]}
'En el siguiente ejemplo, se usa un JSON archivo
instancegroupconfig.json
,, para especificar la configuración de todos los grupos de instancias de un clúster. El JSON archivo especifica la configuración de la política de escalado automático para el grupo de instancias 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
Contenidos 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}" } ] } } } ] } } ]
Ejemplo 17: Agrega JAR pasos personalizados al crear un clúster
En el siguiente
create-cluster
ejemplo, se añaden pasos especificando un JAR archivo almacenado en Amazon S3. Pasos para enviar el trabajo a un clúster. La función principal definida en el JAR archivo se ejecuta una vez que se aprovisionan las EC2 instancias, se ha ejecutado cualquier acción de arranque y se han instalado las aplicaciones. Los pasos se especifican mediante.Type=CUSTOM_JAR
JARLos pasos personalizados requieren el
Jar=
parámetro, que especifica la ruta y el nombre de archivo delJAR. Los parámetros opcionales sonType
Name
ActionOnFailure
,Args
, yMainClass
. Si no se especifica la clase principal, el JAR archivo debe especificarloMain-Class
en su archivo de manifiesto.aws emr create-cluster \ --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
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateEjemplo 18: Para añadir pasos de streaming al crear un clúster
En los siguientes
create-cluster
ejemplos, se agrega un paso de transmisión a un clúster que finaliza una vez ejecutados todos los pasos. Los pasos de transmisión requieren parámetrosType
y.Args
Los parámetros opcionales de los pasos de transmisión sonName
yActionOnFailure
.El siguiente ejemplo especifica el paso en línea.
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-terminateEn el siguiente ejemplo, se utiliza un archivo de JSON configuración almacenado localmente denominado
multiplefiles.json
. La JSON configuración especifica varios archivos. Para especificar varios archivos en un paso, debe usar un archivo JSON de configuración para especificar el paso. JSONlos argumentos deben incluir opciones y valores como elementos propios de la lista.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-terminateContenidos 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" } ]
Ejemplo 19: Para añadir los pasos de Hive al crear un clúster
En el siguiente ejemplo, se añaden los pasos de Hive al crear un clúster. Los pasos de Hive requieren parámetros
Type
y.Args
Los parámetros opcionales de los pasos de la colmena sonName
y.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
Ejemplo 20: Para añadir los pasos de Pig al crear un clúster
En el siguiente ejemplo, se añaden los pasos de Pig al crear un clúster. Los parámetros necesarios de Pig Steps son
Type
yArgs
. Los parámetros opcionales de Pig Steps sonName
yActionOnFailure
.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
Ejemplo 21: Para añadir acciones de bootstrap
El siguiente
create-cluster
ejemplo ejecuta dos acciones de arranque definidas como scripts que se almacenan en 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-terminateEjemplo 22: Para permitir EMRFS una visualización coherente y personalizar la configuración RetryCount y RetryPeriod
El siguiente
create-cluster
ejemplo especifica el número de reintentos y el período de reintentos para una visualización EMRFS coherente. El argumentoConsistent=true
es obligatorio.aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsConsistent=true,RetryCount=6,RetryPeriod=30
En el ejemplo siguiente se especifica la misma EMRFS configuración que en el ejemplo anterior, mediante un archivo de JSON configuración almacenado localmente denominado.
emrfsconfig.json
aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsfile://emrfsconfig.json
Contenidos de
emrfsconfig.json
:{ "Consistent": true, "RetryCount": 6, "RetryPeriod": 30 }
Ejemplo 23: Para crear un clúster con Kerberos configurado
En los siguientes
create-cluster
ejemplos se crea un clúster mediante una configuración de seguridad con Kerberos activado y se establecen los parámetros de Kerberos para el clúster que se utiliza.--kerberos-attributes
El siguiente comando especifica los atributos de Kerberos para el clúster en línea.
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
El siguiente comando especifica los mismos atributos, pero hace referencia a un JSON archivo almacenado localmente denominado.
kerberos_attributes.json
En este ejemplo, el archivo se guarda en el mismo directorio en el que se ejecuta el comando. También puede hacer referencia a un archivo de configuración guardado en 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
Contenidos de
kerberos_attributes.json
:{ "Realm": "EC2.INTERNAL", "KdcAdminPassword": "123", "CrossRealmTrustPrincipalPassword": "123", }
El siguiente
create-cluster
ejemplo crea un EMR clúster de Amazon que utiliza la--instance-groups
configuración y tiene una política de escalado gestionada.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}'El siguiente
create-cluster
ejemplo crea un EMR clúster de Amazon que usa el «-- log-encryption-kms-key -id» para definir el ID de KMS clave utilizado para el cifrado de registros.aws emr create-cluster \ --release-label
emr-5.30.0
\ --log-uris3://myBucket/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
El siguiente
create-cluster
ejemplo crea un EMR clúster de Amazon que usa la configuración «--placement-group-configs» para colocar los nodos maestros en un clúster de alta disponibilidad (HA) dentro de un grupo de EC2 ubicación mediante una estrategia deSPREAD
ubicación.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
En el siguiente
create-cluster
ejemplo, se crea un EMR clúster de Amazon que utiliza la configuración auto-termination-policy «--» para establecer un umbral de terminación automática de inactividad para el clúster.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
El siguiente
create-cluster
ejemplo crea un EMR clúster de Amazon que usa el signo «--os-release-label» para definir una versión de Amazon Linux para el lanzamiento del clústeraws 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
Ejemplo 24: Para especificar los atributos de un volumen EBS raíz: tamaño, IOPS y rendimiento para las instancias de clúster creadas con las EMR versiones 6.15.0 y posteriores
El siguiente
create-cluster
ejemplo crea un EMR clúster de Amazon que usa atributos de volumen raíz para configurar las especificaciones de los volúmenes raíz de las EC2 instancias.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
-
Para API obtener más información, consulte CreateClusterExamples
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar create-default-roles
.
- AWS CLI
-
1. Para crear el IAM rol predeterminado para EC2
Comando:
aws emr create-default-roles
Salida:
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" } } ]
-
Para API obtener más información, consulte CreateDefaultRoles
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar create-security-configuration
.
- AWS CLI
-
1. Para crear una configuración de seguridad con el cifrado en tránsito habilitado PEM para el proveedor de certificados y el cifrado en reposo habilitado con SSE -S3 para el cifrado S3 y AWS- KMS para el proveedor de claves de disco local
Comando:
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" } } } }'
Salida:
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }
JSONequivalente (contenido 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" } } } }
Comando (usando security_configuration.json):
aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json
Salida:
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }
2. Para crear una configuración de seguridad con Kerberos habilitado mediante la confianza entre dominios y dedicada al clúster KDC
Comando:
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" } } } } }'
Salida:
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }
JSONequivalente (contenido 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" } } } } }
Comando (usando security_configuration.json):
aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json
Salida:
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }
-
Para obtener API más información, consulte la Referencia de comandos. CreateSecurityConfiguration
AWS CLI
-
En el siguiente ejemplo de código se muestra cómo usar delete-security-configuration
.
- AWS CLI
-
Para eliminar una configuración de seguridad en la región actual
Comando:
aws emr delete-security-configuration --name MySecurityConfig
Salida:
None
-
Para API obtener más información, consulte DeleteSecurityConfiguration
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar describe-cluster
.
- AWS CLI
-
Comando:
aws emr describe-cluster --cluster-id j-XXXXXXXX
Salida:
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" } }
-
Para API obtener más información, consulte DescribeCluster
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar describe-step
.
- AWS CLI
-
El siguiente comando describe un paso con el ID del paso
s-3LZC0QUT43AM
en un clúster con el ID de clústerj-3SD91U2E1L2QX
:aws emr describe-step --cluster-id
j-3SD91U2E1L2QX
--step-ids-3LZC0QUT43AM
Salida:
{ "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" } }
-
Para API obtener más información, consulte DescribeStep
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar get
.
- AWS CLI
-
A continuación, se descarga el
hadoop-examples.jar
archivo de la instancia maestra de un clúster con el ID del clústerj-3SD91U2E1L2QX
:aws emr get --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
--src/home/hadoop-examples.jar
--dest~
-
Para API obtener más información, consulta la referencia de Get
in AWS CLI Command.
-
En el siguiente ejemplo de código se muestra cómo usar list-clusters
.
- AWS CLI
-
El siguiente comando muestra todos los EMR clústeres activos de la región actual:
aws emr list-clusters --active
Salida:
{ "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" } ] }
-
Para API obtener más información, consulte ListClusters
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar list-instance-fleets
.
- AWS CLI
-
Para obtener los detalles de configuración de las flotas de instancias de un clúster
En este ejemplo, se muestran los detalles de las flotas de instancias del clúster especificado.
Comando:
list-instance-fleets --cluster-id 'j-12ABCDEFGHI34JK'
Salida:
{ "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" } ] }
-
Para API obtener más información, consulte ListInstanceFleets
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar list-instances
.
- AWS CLI
-
El siguiente comando muestra todas las instancias de un clúster con el ID del clúster
j-3C6XNQ39VR9WL
:aws emr list-instances --cluster-id
j-3C6XNQ39VR9WL
Salida:
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" } ] }
-
Para API obtener más información, consulta ListInstances
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar list-security-configurations
.
- AWS CLI
-
Para enumerar las configuraciones de seguridad de la región actual
Comando:
aws emr list-security-configurations
Salida:
{ "SecurityConfigurations": [ { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-1" }, { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-2" } ] }
-
Para API obtener más información, consulte ListSecurityConfigurations
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar list-steps
.
- AWS CLI
-
El siguiente comando muestra todos los pasos de un clúster con el ID del clúster
j-3SD91U2E1L2QX
:aws emr list-steps --cluster-id
j-3SD91U2E1L2QX
-
Para API obtener más información, consulte ListSteps
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar modify-cluster-attributes
.
- AWS CLI
-
El siguiente comando establece la visibilidad de un EMR clúster con el ID
j-301CDNY0J5XM4
para todos los usuarios:aws emr modify-cluster-attributes --cluster-id
j-301CDNY0J5XM4
--visible-to-all-users-
Para API obtener más información, consulte ModifyClusterAttributes
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar modify-instance-fleet
.
- AWS CLI
-
Para cambiar las capacidades objetivo de una flota de instancias
En este ejemplo, se cambian las capacidades objetivo bajo demanda y puntual a 1 para la flota de instancias especificada.
Comando:
aws emr modify-instance-fleet --cluster-id '
j-12ABCDEFGHI34JK
' --instance-fleet InstanceFleetId='if-2ABC4DEFGHIJ4',TargetOnDemandCapacity=1,TargetSpotCapacity=1-
Para API obtener más información, consulte ModifyInstanceFleet
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar put
.
- AWS CLI
-
El siguiente comando carga un archivo con el nombre
healthcheck.sh
de la instancia maestra de un clúster con el ID del clúster: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
-
Para API obtener más información, consulta la referencia de Put
in AWS CLI Command.
-
En el siguiente ejemplo de código se muestra cómo usar remove-tags
.
- AWS CLI
-
El siguiente comando elimina una etiqueta con la clave
prod
de un clúster con el ID del clústerj-3SD91U2E1L2QX
:aws emr remove-tags --resource-id
j-3SD91U2E1L2QX
--tag-keysprod
-
Para API obtener más información, consulte RemoveTags
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar schedule-hbase-backup
.
- AWS CLI
-
Nota: Este comando solo se puede utilizar HBase en las AMI versiones 2.x y 3.x
1. Para programar una HBase copia de seguridad completa >>>>>>> 06ab6d6e13564b5733d75abaf3b599f93cf39a23
Comando:
aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type full --dir s3://myBucket/backup --interval 10 --unit hours --start-time 2014-04-21T05:26:10Z --consistent
Salida:
None
2. Para programar una copia de HBase seguridad incremental
Comando:
aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type incremental --dir s3://myBucket/backup --interval 30 --unit minutes --start-time 2014-04-21T05:26:10Z --consistent
Salida:
None
-
Para API obtener más información, consulte ScheduleHbaseBackup
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar socks
.
- AWS CLI
-
El siguiente comando abre una conexión Socks con la instancia maestra de un clúster con el ID del clúster
j-3SD91U2E1L2QX
:aws emr socks --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
La opción de archivo de pares de claves toma una ruta local a un archivo de clave privada.
-
Para API obtener más información, consulte la referencia de Socks
in AWS CLI Command.
-
En el siguiente ejemplo de código se muestra cómo usar ssh
.
- AWS CLI
-
El siguiente comando abre una conexión ssh con la instancia maestra de un clúster con el ID del clúster:
j-3SD91U2E1L2QX
aws emr ssh --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
La opción de archivo de pares de claves toma una ruta local a un archivo de clave privada.
Salida:
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 ~]$
-
Para API obtener más información, consulte Ssh
en la Referencia de AWS CLI comandos.
-