Há mais exemplos de AWS SDK disponíveis no repositório AWS Doc SDK Examples
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Exemplos do Amazon EMR usando AWS CLI
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface com o Amazon EMR.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.
Tópicos
Ações
O código de exemplo a seguir mostra como usar add-instance-fleet.
- AWS CLI
-
Adicionar uma frota de instâncias de tarefa a um cluster
Este exemplo adiciona uma nova frota de instâncias de tarefas ao cluster 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}']Saída:
{ "ClusterId": "j-12ABCDEFGHI34JK", "InstanceFleetId": "if-23ABCDEFGHI45JJ" }-
Para obter detalhes da API, consulte AddInstanceFleet
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar add-steps.
- AWS CLI
-
1. Adicionar uma etapa JAR personalizada a um cluster
Comando:
aws emr add-steps --cluster-id j-XXXXXXXX --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,arg3Parâmetros obrigatórios:
JarParâmetros opcionais:
Type, Name, ActionOnFailure, ArgsSaída:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }2. Adicionar etapas de transmissão a um cluster
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://amzn-s3-demo-bucket/wordcount/output]Parâmetros obrigatórios:
Type, ArgsParâmetros opcionais:
Name, ActionOnFailureEquivalente em JSON (conteúdo 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://amzn-s3-demo-bucket/wordcount/output"], "ActionOnFailure": "CONTINUE", "Type": "STREAMING" } ]OBSERVAÇÃO: os argumentos JSON devem incluir opções e valores como seus próprios itens na lista.
Comando (usando step.json):
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./step.jsonSaída:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }3. Adicionar uma etapa de transmissão com vários arquivos a um cluster (somente JSON)
JSON (vários arquivos.json):
[ { "Name": "JSON Streaming Step", "Type": "STREAMING", "ActionOnFailure": "CONTINUE", "Args": [ "-files", "s3://amzn-s3-demo-bucket/mapper.py,s3://amzn-s3-demo-bucket/reducer.py", "-mapper", "mapper.py", "-reducer", "reducer.py", "-input", "s3://amzn-s3-demo-bucket/input", "-output", "s3://amzn-s3-demo-bucket/output"] } ]Comando:
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./multiplefiles.jsonParâmetros obrigatórios:
Type, ArgsParâmetros opcionais:
Name, ActionOnFailureSaída:
{ "StepIds":[ "s-XXXXXXXX", ] }4. Adicionar etapas Hive a um cluster
Comando:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=HIVE,Name='Hive program',ActionOnFailure=CONTINUE,Args=[-f,s3://amzn-s3-demo-bucket/myhivescript.q,-d,INPUT=s3://amzn-s3-demo-bucket/myhiveinput,-d,OUTPUT=s3://amzn-s3-demo-bucket/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://amzn-s3-demo-bucket/hive-ads/output/2014-04-18/11-07-32,-d,LIBS=s3://elasticmapreduce/samples/hive-ads/libs]Parâmetros obrigatórios:
Type, ArgsParâmetros opcionais:
Name, ActionOnFailureSaída:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }5. Adicionar etapas Pig a um cluster
Comando:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=PIG,Name='Pig program',ActionOnFailure=CONTINUE,Args=[-f,s3://amzn-s3-demo-bucket/mypigscript.pig,-p,INPUT=s3://amzn-s3-demo-bucket/mypiginput,-p,OUTPUT=s3://amzn-s3-demo-bucket/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://amzn-s3-demo-bucket/pig-apache/output,arg1,arg2]Parâmetros obrigatórios:
Type, ArgsParâmetros opcionais:
Name, ActionOnFailureSaída:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }6. Adicionar etapas Impala a um cluster
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/outputParâmetros obrigatórios:
Type, ArgsParâmetros opcionais:
Name, ActionOnFailureSaída:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }-
Para obter detalhes da API, consulte AddSteps
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar add-tags.
- AWS CLI
-
1. Adicionar tags a um cluster
Comando:
aws emr add-tags --resource-id j-xxxxxxx --tags name="John Doe" age=29 sex=male address="123 East NW Seattle"Saída:
None2. Listar as tags de um cluster
--Comando:
aws emr describe-cluster --cluster-idj-XXXXXXYY--queryCluster.TagsSaída:
[ { "Value": "male", "Key": "sex" }, { "Value": "123 East NW Seattle", "Key": "address" }, { "Value": "John Doe", "Key": "name" }, { "Value": "29", "Key": "age" } ]-
Para obter detalhes da API, consulte AddTags
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar create-cluster-examples.
- AWS CLI
-
A maioria dos exemplos a seguir pressupõe que você especificou sua função de serviço do Amazon EMR e seu perfil de EC2 instância da Amazon. Se você não tiver feito isso, deverá especificar cada perfil do IAM necessário ou usar o parâmetro
--use-default-rolesao criar seu cluster. Para obter mais informações sobre a especificação de funções do IAM, consulte Configurar funções do IAM para permissões do Amazon EMR AWS para serviços no Guia de gerenciamento do Amazon EMR.Exemplo 1: criar um cluster
O exemplo
create-clustera seguir cria um cluster EMR simples.aws emr create-cluster \ --release-labelemr-5.14.0\ --instance-typem4.large\ --instance-count2Este comando não produz saída.
Exemplo 2: Para criar um cluster do Amazon EMR com funções e padrões ServiceRole InstanceProfile
O exemplo
create-clustera seguir cria um cluster do Amazon EMR que usa a configuração--instance-groups.aws emr create-cluster \ --release-labelemr-5.14.0\ --service-roleEMR_DefaultRole\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeExemplo 3: criar um cluster do Amazon EMR que usa uma frota de instâncias
O
create-clusterexemplo a seguir cria um cluster do Amazon EMR que usa a--instance-fleetsconfiguração, especificando dois tipos de instância para cada frota e duas sub-redes. EC2aws emr create-cluster \ --release-labelemr-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}'}Exemplo 4: criar um cluster com funções padrão
O exemplo
create-clustera seguir usa o parâmetro--use-default-rolespara especificar o perfil de serviço padrão e o perfil de instância.aws emr create-cluster \ --release-labelemr-5.9.0\ --use-default-roles \ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateExemplo 5: criar um cluster e especificar as aplicações a serem instaladas
O exemplo
create-clustera seguir usa o parâmetro--applicationspara especificar as aplicações que o Amazon EMR instala. Este exemplo instala o Hadoop, o Hive e o Pig.aws emr create-cluster \ --applicationsName=HadoopName=HiveName=Pig\ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateExemplo 6: criar um cluster que inclua o Spark
O exemplo a seguir instala o Spark.
aws emr create-cluster \ --release-labelemr-5.9.0\ --applicationsName=Spark\ --ec2-attributesKeyName=myKey\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateExemplo 7: especificar uma AMI personalizada para usar em instâncias de cluster
O exemplo
create-clustera seguir cria uma instância de cluster com base na Amazon Linux AMI com 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.largeExemplo 8: personalizar as configurações da aplicação
Os exemplos a seguir usam o parâmetro
--configurationspara especificar um arquivo de configuração JSON que contém personalizações de aplicações para o Hadoop. Para obter mais informações, consulte Configurar aplicações no Guia de versão do Amazon EMR.Conteúdo 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" } } ] } ]O exemplo a seguir faz referência ao
configurations.jsoncomo um arquivo local.aws emr create-cluster \ --configurationsfile://configurations.json\ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateO exemplo a seguir faz referência ao
configurations.jsoncomo um arquivo no Amazon S3.aws emr create-cluster \ --configurationshttps://s3.amazonaws.com/amzn-s3-demo-bucket/configurations.json\ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateExemplo 9: criar um cluster com grupos de instâncias mestre, principal e de tarefas
O
create-clusterexemplo a seguir é usado--instance-groupspara especificar o tipo e o número de EC2 instâncias a serem usadas para grupos de instâncias mestre, principal e de tarefas.aws emr create-cluster \ --release-labelemr-5.9.0\ --instance-groupsName=Master,InstanceGroupType=MASTER,InstanceType=m4.large,InstanceCount=1Name=Core,InstanceGroupType=CORE,InstanceType=m4.large,InstanceCount=2Name=Task,InstanceGroupType=TASK,InstanceType=m4.large,InstanceCount=2Exemplo 10: especificar que um cluster deve ser encerrado após a conclusão de todas as etapas
O exemplo
create-clustera seguir usa--auto-terminatepara especificar que o cluster deve ser desligado automaticamente após a conclusão de todas as etapas.aws emr create-cluster \ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateExemplo 11: Para especificar detalhes da configuração do cluster, como o par de EC2 chaves da Amazon, a configuração da rede e os grupos de segurança
O
create-clusterexemplo a seguir cria um cluster com o par de EC2 chaves da Amazon chamadomyKeye um perfil de instância personalizado chamadomyProfile. Os pares de chaves são usados para autorizar conexões SSH com os nós do cluster, geralmente o nó principal. Para obter mais informações, consulte Usar um par de EC2 chaves da Amazon para credenciais SSH no Guia de gerenciamento do Amazon EMR.aws emr create-cluster \ --ec2-attributesKeyName=myKey,InstanceProfile=myProfile\ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateO exemplo a seguir cria um cluster em uma sub-rede do Amazon VPC.
aws emr create-cluster \ --ec2-attributesSubnetId=subnet-xxxxx\ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateO exemplo a seguir cria um cluster na zona de disponibilidade
us-east-1b.aws emr create-cluster \ --ec2-attributesAvailabilityZone=us-east-1b\ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeO exemplo a seguir cria um cluster e especifica somente os grupos de segurança gerenciados pelo Amazon EMR.
aws emr create-cluster \ --release-labelemr-5.9.0\ --service-rolemyServiceRole\ --ec2-attributesInstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeO exemplo a seguir cria um cluster e especifica somente grupos de EC2 segurança adicionais da Amazon.
aws emr create-cluster \ --release-labelemr-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.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeO exemplo a seguir cria um cluster e especifica os grupos de segurança gerenciados pelo EMR, bem como grupos de segurança adicionais.
aws emr create-cluster \ --release-labelemr-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.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeO exemplo a seguir cria um cluster em uma sub-rede privada de VPC e usa um grupo de EC2 segurança específico da Amazon para permitir o acesso ao serviço Amazon EMR, o que é necessário para clusters em sub-redes privadas.
aws emr create-cluster \ --release-labelemr-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.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeO exemplo a seguir especifica os parâmetros de configuração do grupo de segurança usando um arquivo JSON chamado
ec2_attributes.jsonque é armazenado localmente. OBSERVAÇÃO: os argumentos JSON devem incluir opções e valores como seus próprios itens na lista.aws emr create-cluster \ --release-labelemr-5.9.0\ --service-rolemyServiceRole\ --ec2-attributesfile://ec2_attributes.json\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeConteúdo 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"] } ]Exemplo 12: habilitar a depuração e especificar um URI de log
O exemplo
create-clustera seguir usa o parâmetro--enable-debugging, que permite que você visualize arquivos de log com mais facilidade usando a ferramenta de depuração no console do Amazon EMR. O parâmetro--log-urié obrigatório com o--enable-debugging.aws emr create-cluster \ --enable-debugging \ --log-uris3://amzn-s3-demo-bucket/myLog\ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateExemplo 13: adicionar tags ao criar um cluster
As tags são pares de chave-valor que ajudam você a identificar e gerenciar clusters. O exemplo
create-clustera seguir usa o parâmetro--tagspara criar três tags para um cluster, uma com o nome da chavenamee o valorShirley Rodriguez, uma segunda com o nome da chaveagee o valor29e uma terceira tag com o nome da chavedepartmente o valorAnalytics.aws emr create-cluster \ --tags name="Shirley Rodriguez"age=29department="Analytics" \ --release-labelemr-5.32.0\ --instance-typem5.xlarge\ --instance-count3\ --use-default-rolesO exemplo a seguir lista as tags aplicadas a um cluster.
aws emr describe-cluster \ --cluster-idj-XXXXXXYY\ --queryCluster.TagsExemplo 14: usar uma configuração de segurança que habilite a criptografia e outros atributos de segurança
O exemplo
create-clustera seguir usa o parâmetro--security-configurationpara especificar uma configuração de segurança para um cluster do EMR. Você pode usar configurações de segurança com o Amazon EMR versão 4.8.0 ou posterior.aws emr create-cluster \ --instance-typem4.large\ --release-labelemr-5.9.0\ --security-configurationmySecurityConfigurationExemplo 15: criar um cluster com volumes de armazenamento adicionais do EBS configurados para os grupos de instâncias
Ao especificar volumes adicionais do EBS, os seguintes argumentos são obrigatórios:
VolumeType,SizeInGBseEbsBlockDeviceConfigsfor especificado.O
create-clusterexemplo a seguir cria um cluster com vários volumes do EBS anexados às EC2 instâncias no grupo de instâncias principal.aws emr create-cluster \ --release-labelemr-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-terminateO exemplo a seguir cria um cluster com vários volumes do EBS anexados às EC2 instâncias no grupo de instâncias mestre.
aws emr create-cluster \ --release-labelemr-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-terminateExemplo 16: criar um cluster com uma política de escala automática
Você pode anexar políticas de escala automática a grupos de instâncias principais e de tarefas usando o Amazon EMR versão 4.0 e versões posteriores. A política de escalabilidade automática adiciona e remove EC2 instâncias dinamicamente em resposta a uma métrica da Amazon CloudWatch . Para obter mais informações, consulte Usando a escalabilidade automática no Amazon EMR https://docs.aws.amazon.com/emr/ latest/ManagementGuide/emr < -automatic-scaling.html>`_ no Guia de gerenciamento do Amazon EMR.
Ao anexar uma política de escala automática, você também deve especificar o perfil padrão para a escala automática usando o
--auto-scaling-role EMR_AutoScaling_DefaultRole.O exemplo
create-clustera seguir especifica a política de escala automática para o grupo de instânciasCOREusando o argumentoAutoScalingPolicycom uma estrutura JSON incorporada, que especifica a configuração da política de escala. Grupos de instâncias com uma estrutura JSON incorporada devem ter toda a coleção de argumentos entre aspas simples. Usar aspas simples é opcional para grupos de instâncias sem uma estrutura JSON incorporada.aws emr create-cluster --release-labelemr-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}]}}}]}'O exemplo a seguir usa um arquivo JSON,
instancegroupconfig.json, para especificar a configuração de todos os grupos de instâncias em um cluster. O arquivo JSON especifica a configuração automática da política de escalabilidade para o grupo de instâncias principal.aws emr create-cluster \ --release-labelemr-5.9.0\ --service-roleEMR_DefaultRole\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole\ --instance-groupsfile://myfolder/instancegroupconfig.json\ --auto-scaling-roleEMR_AutoScaling_DefaultRoleConteúdo 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}" } ] } } } ] } } ]Exemplo 17: adicionar etapas JAR personalizadas ao criar um cluster
O exemplo
create-clustera seguir adiciona etapas especificando um arquivo JAR armazenado no Amazon S3. Etapas para enviar trabalhos a um cluster. A função principal definida no arquivo JAR é executada após o provisionamento das EC2 instâncias, a execução de qualquer ação de bootstrap e a instalação dos aplicativos. As etapas são especificadas usandoType=CUSTOM_JAR.As etapas personalizadas do JAR exigem o parâmetro
Jar=, que especifica o caminho e o nome do arquivo do JAR. Os parâmetros opcionais sãoType,Name,ActionOnFailure,ArgseMainClass. Se uma classe principal não for especificada, o arquivo JAR deverá especificarMain-Classem seu arquivo manifesto.aws emr create-cluster \ --stepsType=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,Args=arg1,arg2,arg3Type=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.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateExemplo 18: adicionar etapas de transmissão ao criar um cluster
Os exemplos
create-clustera seguir adicionam uma etapa de transmissão a um cluster que termina após a execução de todas as etapas. As etapas de transmissão exigem parâmetrosTypeeArgs. Os parâmetros opcionais das etapas de transmissão sãoNameeActionOnFailure.O exemplo a seguir especifica a etapa na linha.
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://amzn-s3-demo-bucket/wordcount/output] \ --release-labelemr-5.3.1\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateO exemplo a seguir usa um arquivo de configuração JSON armazenado localmente chamado
multiplefiles.json. A configuração JSON especifica vários arquivos. Para especificar vários arquivos em uma etapa, você deve usar um arquivo de configuração JSON para especificar a etapa. Os argumentos JSON devem incluir opções e valores como seus próprios itens na lista.aws emr create-cluster \ --stepsfile://./multiplefiles.json\ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateConteúdo 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://amzn-s3-demo-bucket/wordcount/output" ], "ActionOnFailure": "CONTINUE", "Type": "STREAMING" } ]Exemplo 19: adicionar etapas do Hive ao criar um cluster
O exemplo a seguir adiciona etapas do Hive ao criar um cluster. As etapas do Hive requerem os parâmetros
TypeeArgs. Os parâmetros opcionais das etapas do Hive sãoNameeActionOnFailure.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://amzn-s3-demo-bucket/hive-ads/output/2014-04-18/11-07-32,-d,LIBS=s3://elasticmapreduce/samples/hive-ads/libs] \ --applicationsName=Hive\ --release-labelemr-5.3.1\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeExemplo 20: adicionar etapas do Pig ao criar um cluster
O exemplo a seguir adiciona etapas do Pig ao criar um cluster. Os parâmetros necessários para as etapas do Pig são
TypeeArgs. Os parâmetros opcionais das etapas do Pig sãoNameeActionOnFailure.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://amzn-s3-demo-bucket/pig-apache/output] \ --applicationsName=Pig\ --release-labelemr-5.3.1\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeExemplo 21: adicionar ações de bootstrap
O exemplo
create-clustera seguir executa duas ações de bootstrap definidas como scripts que são armazenados no Amazon S3.aws emr create-cluster \ --bootstrap-actionsPath=s3://amzn-s3-demo-bucket/myscript1,Name=BootstrapAction1,Args=[arg1,arg2]Path=s3://amzn-s3-demo-bucket/myscript2,Name=BootstrapAction2,Args=[arg1,arg2]\ --release-labelemr-5.3.1\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateExemplo 22: Para habilitar a visualização consistente do EMRFS e personalizar as RetryCount configurações e RetryPeriod
O exemplo
create-clustera seguir especifica a contagem e o período de novas tentativas para a visualização consistente do EMRFS. O argumentoConsistent=trueé obrigatório.aws emr create-cluster \ --instance-typem4.large\ --release-labelemr-5.9.0\ --emrfsConsistent=true,RetryCount=6,RetryPeriod=30O exemplo a seguir especifica a mesma configuração do EMRFS do exemplo anterior, usando um arquivo de configuração JSON armazenado localmente chamado
emrfsconfig.json.aws emr create-cluster \ --instance-typem4.large\ --release-labelemr-5.9.0\ --emrfsfile://emrfsconfig.jsonConteúdo de
emrfsconfig.json:{ "Consistent": true, "RetryCount": 6, "RetryPeriod": 30 }Exemplo 23: criar um cluster com o Kerberos configurado
Os exemplos
create-clustera seguir criam um cluster usando uma configuração de segurança com o Kerberos habilitado e estabelecem os parâmetros do Kerberos para o cluster usando--kerberos-attributes.O comando a seguir especifica os atributos do Kerberos para o cluster em linha.
aws emr create-cluster \ --instance-typem3.xlarge\ --release-labelemr-5.10.0\ --service-roleEMR_DefaultRole\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole\ --security-configurationmySecurityConfiguration\ --kerberos-attributesRealm=EC2.INTERNAL,KdcAdminPassword=123,CrossRealmTrustPrincipalPassword=123O comando a seguir especifica os mesmos atributos, mas faz referência a um arquivo JSON armazenado localmente chamado
kerberos_attributes.json. Neste exemplo, o arquivo é salvo no mesmo diretório em que você executa o comando. Você também pode fazer referência a um arquivo de configuração salvo no Amazon S3.aws emr create-cluster \ --instance-typem3.xlarge\ --release-labelemr-5.10.0\ --service-roleEMR_DefaultRole\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole\ --security-configurationmySecurityConfiguration\ --kerberos-attributesfile://kerberos_attributes.jsonConteúdo de
kerberos_attributes.json:{ "Realm": "EC2.INTERNAL", "KdcAdminPassword": "123", "CrossRealmTrustPrincipalPassword": "123", }O exemplo
create-clustera seguir cria um cluster do Amazon EMR que usa a configuração--instance-groupse tem uma política de escala gerenciada.aws emr create-cluster \ --release-labelemr-5.30.0\ --service-roleEMR_DefaultRole\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large--managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=2,MaximumCapacityUnits=4,UnitType=Instances}'O
create-clusterexemplo a seguir cria um cluster do Amazon EMR que usa o “-- log-encryption-kms-key -id” para definir o ID da chave KMS utilizado para criptografia de log.aws emr create-cluster \ --release-labelemr-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.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.largeO
create-clusterexemplo a seguir cria um cluster do Amazon EMR que usa a configuração “--placement-group-configs" para colocar nós principais em um cluster de alta disponibilidade (HA) dentro de um grupo de posicionamento usandoSPREADa estratégia de EC2 posicionamento.aws emr create-cluster \ --release-labelemr-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=MASTERO
create-clusterexemplo a seguir cria um cluster do Amazon EMR que usa a configuração “--auto-termination-policy" para estabelecer um limite automático de terminação ociosa para o cluster.aws emr create-cluster \ --release-labelemr-5.34.0\ --service-roleEMR_DefaultRole\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large\ --auto-termination-policyIdleTimeout=100O
create-clusterexemplo a seguir cria um cluster do Amazon EMR que usa o “--os-release-label" para definir uma versão do Amazon Linux para lançamento do clusteraws emr create-cluster \ --release-labelemr-6.6.0\ --os-release-label2.0.20220406.1\ --service-roleEMR_DefaultRole\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.largeExemplo 24: especificar atributos de volume raiz do EBS: tamanho, iops e taxa de throughput para instâncias de cluster criadas com o EMR versões 6.15.0 e posteriores
O
create-clusterexemplo a seguir cria um cluster do Amazon EMR que usa atributos de volume raiz para configurar especificações de volumes raiz para as EC2 instâncias.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 obter detalhes da API, consulte CreateClusterExamples
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar create-default-roles.
- AWS CLI
-
1. Para criar a função padrão do IAM para EC2
Comando:
aws emr create-default-rolesSaída:
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 obter detalhes da API, consulte CreateDefaultRoles
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar create-security-configuration.
- AWS CLI
-
1. Para criar uma configuração de segurança com criptografia em trânsito habilitada com PEM para provedor de certificados e criptografia em repouso habilitada com SSE-S3 para criptografia S3 e -KMS para provedor de chave de disco local AWS
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" } } } }'Saída:
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }Equivalente em JSON (conteúdo 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.jsonSaída:
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }2. Criar uma configuração de segurança com o Kerberos habilitado usando KDC dedicado ao cluster e confiança entre regiões
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" } } } } }'Saída:
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }Equivalente em JSON (conteúdo 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.jsonSaída:
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }-
Para obter detalhes da API, consulte CreateSecurityConfiguration
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar delete-security-configuration.
- AWS CLI
-
Excluir uma configuração de segurança na região atual
Comando:
aws emr delete-security-configuration --name MySecurityConfigSaída:
None-
Para obter detalhes da API, consulte DeleteSecurityConfiguration
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar describe-cluster.
- AWS CLI
-
Comando:
aws emr describe-cluster --cluster-id j-XXXXXXXXSaída:
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 obter detalhes da API, consulte DescribeCluster
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar describe-step.
- AWS CLI
-
O seguinte comando descreve uma etapa com o ID de etapa
s-3LZC0QUT43AMem um cluster com o ID de clusterj-3SD91U2E1L2QX:aws emr describe-step --cluster-idj-3SD91U2E1L2QX--step-ids-3LZC0QUT43AMSaída:
{ "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 obter detalhes da API, consulte DescribeStep
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar get.
- AWS CLI
-
O seguinte baixa o arquivo
hadoop-examples.jarda instância principal em um cluster com o ID do clusterj-3SD91U2E1L2QX:aws emr get --cluster-idj-3SD91U2E1L2QX--key-pair-file~/.ssh/mykey.pem--src/home/hadoop-examples.jar--dest~-
Para ver detalhes da API, consulte Get
na Referência de comandos da AWS CLI .
-
O código de exemplo a seguir mostra como usar list-clusters.
- AWS CLI
-
O comando a seguir lista todos os clusters ativos do EMR na região atual:
aws emr list-clusters --activeSaída:
{ "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 obter detalhes da API, consulte ListClusters
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar list-instance-fleets.
- AWS CLI
-
Obter detalhes da configuração de frotas de instâncias em um cluster
Este exemplo lista os detalhes de frotas de instâncias no cluster especificado.
Comando:
list-instance-fleets --cluster-id 'j-12ABCDEFGHI34JK'Saída:
{ "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 obter detalhes da API, consulte ListInstanceFleets
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar list-instances.
- AWS CLI
-
O seguinte comando lista todas as instâncias em um cluster com o ID de cluster
j-3C6XNQ39VR9WL:aws emr list-instances --cluster-idj-3C6XNQ39VR9WLSaída:
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 obter detalhes da API, consulte ListInstances
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar list-security-configurations.
- AWS CLI
-
Listar as configurações de segurança na região atual
Comando:
aws emr list-security-configurationsSaída:
{ "SecurityConfigurations": [ { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-1" }, { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-2" } ] }-
Para obter detalhes da API, consulte ListSecurityConfigurations
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar list-steps.
- AWS CLI
-
O seguinte comando lista todas as etapas em um cluster com o ID de cluster
j-3SD91U2E1L2QX:aws emr list-steps --cluster-idj-3SD91U2E1L2QX-
Para obter detalhes da API, consulte ListSteps
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar modify-cluster-attributes.
- AWS CLI
-
O comando a seguir define a visibilidade de um cluster do EMR com o ID
j-301CDNY0J5XM4para todos os usuários:aws emr modify-cluster-attributes --cluster-idj-301CDNY0J5XM4--visible-to-all-users-
Para obter detalhes da API, consulte ModifyClusterAttributes
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar modify-instance-fleet.
- AWS CLI
-
Alterar as capacidades desejadas de uma frota de instâncias
Este exemplo altera as capacidades alvo Sob Demanda e Spot para 1 para a frota de instâncias especificada.
Comando:
aws emr modify-instance-fleet --cluster-id 'j-12ABCDEFGHI34JK' --instance-fleet InstanceFleetId='if-2ABC4DEFGHIJ4',TargetOnDemandCapacity=1,TargetSpotCapacity=1-
Para obter detalhes da API, consulte ModifyInstanceFleet
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar put.
- AWS CLI
-
O comando a seguir envia um arquivo chamado
healthcheck.shpara a instância principal em um cluster com o ID do clusterj-3SD91U2E1L2QX:aws emr put --cluster-idj-3SD91U2E1L2QX--key-pair-file~/.ssh/mykey.pem--src~/scripts/healthcheck.sh--dest/home/hadoop/bin/healthcheck.sh-
Para ver detalhes da API, consulte Put
na Referência de comandos da AWS CLI .
-
O código de exemplo a seguir mostra como usar remove-tags.
- AWS CLI
-
O comando a seguir remove uma tag com a chave
prodde um cluster com o ID do clusterj-3SD91U2E1L2QX:aws emr remove-tags --resource-idj-3SD91U2E1L2QX--tag-keysprod-
Para obter detalhes da API, consulte RemoveTags
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar schedule-hbase-backup.
- AWS CLI
-
Observação: esse comando só pode ser usado com HBase as versões 2.x e 3.x da AMI
1. Para agendar um HBase backup completo >>>>>>> 06ab6d6e13564b5733d75abaf3b599f93cf39a23
Comando:
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 --consistentSaída:
None2. Para agendar um backup incremental HBase
Comando:
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 --consistentSaída:
None-
Para obter detalhes da API, consulte ScheduleHbaseBackup
em Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar socks.
- AWS CLI
-
O comando a seguir abre uma conexão socks com a instância mestre em um cluster com o ID do cluster
j-3SD91U2E1L2QX:aws emr socks --cluster-idj-3SD91U2E1L2QX--key-pair-file~/.ssh/mykey.pemA opção do arquivo de par de chaves usa um caminho local para um arquivo de chave privada.
-
Para ver detalhes da API, consulte Socks
na Referência de comandos da AWS CLI .
-
O código de exemplo a seguir mostra como usar ssh.
- AWS CLI
-
O comando a seguir abre uma conexão ssh com a instância principal em um cluster com o ID do cluster
j-3SD91U2E1L2QX:aws emr ssh --cluster-idj-3SD91U2E1L2QX--key-pair-file~/.ssh/mykey.pemA opção do arquivo de par de chaves usa um caminho local para um arquivo de chave privada.
Saída:
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 ver detalhes da API, consulte Ssh
na Referência de comandos da AWS CLI .
-