Amazon EMR contoh menggunakan AWS CLI - AWS Contoh Kode SDK

Ada lebih banyak contoh AWS SDK yang tersedia di repo Contoh SDK AWS Doc. GitHub

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Amazon EMR contoh menggunakan AWS CLI

Contoh kode berikut menunjukkan cara melakukan tindakan dan menerapkan skenario umum dengan menggunakan EMR AWS Command Line Interface dengan Amazon.

Tindakan adalah kutipan kode dari program yang lebih besar dan harus dijalankan dalam konteks. Sementara tindakan menunjukkan cara memanggil fungsi layanan individual, Anda dapat melihat tindakan dalam konteks dalam skenario terkait.

Setiap contoh menyertakan tautan ke kode sumber lengkap, di mana Anda dapat menemukan instruksi tentang cara mengatur dan menjalankan kode dalam konteks.

Tindakan

Contoh kode berikut menunjukkan cara menggunakanadd-instance-fleet.

AWS CLI

Untuk menambahkan armada instance tugas ke cluster

Contoh ini menambahkan armada instance tugas baru ke cluster yang ditentukan.

Perintah:

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

Output:

{ "ClusterId": "j-12ABCDEFGHI34JK", "InstanceFleetId": "if-23ABCDEFGHI45JJ" }

Contoh kode berikut menunjukkan cara menggunakanadd-steps.

AWS CLI

1. Untuk menambahkan langkah-langkah Custom JAR ke cluster

Perintah:

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

Parameter yang diperlukan:

Jar

Parameter opsional:

Type, Name, ActionOnFailure, Args

Output:

{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }

2. Untuk menambahkan langkah Streaming ke cluster

Perintah:

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]

Parameter yang diperlukan:

Type, Args

Parameter opsional:

Name, ActionOnFailure

Setara JSON (isi 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" } ]

CATATAN: Argumen JSON harus menyertakan opsi dan nilai sebagai item mereka sendiri dalam daftar.

Perintah (menggunakan step.json):

aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./step.json

Output:

{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }

3. Untuk menambahkan langkah Streaming dengan beberapa file ke cluster (hanya JSON)

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

Perintah:

aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./multiplefiles.json

Parameter yang diperlukan:

Type, Args

Parameter opsional:

Name, ActionOnFailure

Output:

{ "StepIds":[ "s-XXXXXXXX", ] }

4. Untuk menambahkan langkah Hive ke cluster

Perintah:

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]

Parameter yang diperlukan:

Type, Args

Parameter opsional:

Name, ActionOnFailure

Output:

{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }

5. Untuk menambahkan langkah Babi ke cluster

Perintah:

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]

Parameter yang diperlukan:

Type, Args

Parameter opsional:

Name, ActionOnFailure

Output:

{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }

6. Untuk menambahkan langkah Impala ke cluster

Perintah:

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

Parameter yang diperlukan:

Type, Args

Parameter opsional:

Name, ActionOnFailure

Output:

{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
  • Untuk detail API, lihat AddStepsdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanadd-tags.

AWS CLI

1. Untuk menambahkan tag ke cluster

Perintah:

aws emr add-tags --resource-id j-xxxxxxx --tags name="John Doe" age=29 sex=male address="123 East NW Seattle"

Output:

None

2. Untuk daftar tag dari sebuah cluster

--Perintah:

aws emr describe-cluster --cluster-id j-XXXXXXYY --query Cluster.Tags

Output:

[ { "Value": "male", "Key": "sex" }, { "Value": "123 East NW Seattle", "Key": "address" }, { "Value": "John Doe", "Key": "name" }, { "Value": "29", "Key": "age" } ]
  • Untuk detail API, lihat AddTagsdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakancreate-cluster-examples.

AWS CLI

Sebagian besar contoh berikut mengasumsikan bahwa Anda menentukan peran layanan EMR Amazon dan profil EC2 instans Amazon. Jika Anda belum melakukan ini, Anda harus menentukan setiap peran IAM yang diperlukan atau menggunakan --use-default-roles parameter saat membuat cluster Anda. Untuk informasi selengkapnya tentang menentukan peran IAM, lihat Mengonfigurasi Peran IAM untuk Izin EMR Amazon ke Layanan di AWS Panduan Manajemen EMR Amazon.

Contoh 1: Untuk membuat cluster

create-clusterContoh berikut membuat cluster EMR sederhana.

aws emr create-cluster \ --release-label emr-5.14.0 \ --instance-type m4.large \ --instance-count 2

Perintah ini tidak menghasilkan output.

Contoh 2: Untuk membuat klaster EMR Amazon dengan default ServiceRole dan peran InstanceProfile

create-clusterContoh berikut membuat cluster EMR Amazon yang menggunakan konfigurasi. --instance-groups

aws emr create-cluster \ --release-label emr-5.14.0 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Contoh 3: Untuk membuat klaster EMR Amazon yang menggunakan armada instans

create-clusterContoh berikut membuat kluster EMR Amazon yang menggunakan --instance-fleets konfigurasi, menentukan dua jenis instans untuk setiap armada dan dua Subnet. EC2

aws emr create-cluster \ --release-label emr-5.14.0 \ --service-role EMR_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}'}

Contoh 4: Untuk membuat cluster dengan peran default

create-clusterContoh berikut menggunakan --use-default-roles parameter untuk menentukan peran layanan default dan profil instance.

aws emr create-cluster \ --release-label emr-5.9.0 \ --use-default-roles \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh 5: Untuk membuat cluster dan menentukan aplikasi yang akan diinstal

create-clusterContoh berikut menggunakan --applications parameter untuk menentukan aplikasi yang Amazon EMR menginstal. Contoh ini menginstal Hadoop, Hive dan Pig.

aws emr create-cluster \ --applications Name=Hadoop Name=Hive Name=Pig \ --release-label emr-5.9.0 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh 6: Untuk membuat cluster yang menyertakan Spark

Contoh berikut menginstal Spark.

aws emr create-cluster \ --release-label emr-5.9.0 \ --applications Name=Spark \ --ec2-attributes KeyName=myKey \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh 7: Untuk menentukan AMI kustom yang akan digunakan untuk instance cluster

create-clusterContoh berikut membuat instance cluster berdasarkan Amazon Linux AMI dengan IDami-a518e6df.

aws emr create-cluster \ --name "Cluster with My Custom AMI" \ --custom-ami-id ami-a518e6df \ --ebs-root-volume-size 20 \ --release-label emr-5.9.0 \ --use-default-roles \ --instance-count 2 \ --instance-type m4.large

Contoh 8: Untuk menyesuaikan konfigurasi aplikasi

Contoh berikut menggunakan --configurations parameter untuk menentukan file konfigurasi JSON yang berisi kustomisasi aplikasi untuk Hadoop. Untuk informasi selengkapnya, lihat Mengkonfigurasi Aplikasi dalam Panduan Rilis Amazon EMR.

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

Contoh referensi berikut configurations.json sebagai file lokal.

aws emr create-cluster \ --configurations file://configurations.json \ --release-label emr-5.9.0 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh referensi berikut configurations.json sebagai file di Amazon S3.

aws emr create-cluster \ --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/configurations.json \ --release-label emr-5.9.0 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh 9: Untuk membuat cluster dengan master, inti, dan grup instance tugas

create-clusterContoh berikut digunakan --instance-groups untuk menentukan jenis dan jumlah EC2 instance yang akan digunakan untuk master, inti, dan kelompok instance tugas.

aws emr create-cluster \ --release-label emr-5.9.0 \ --instance-groups Name=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

Contoh 10: Untuk menentukan bahwa cluster harus dihentikan setelah menyelesaikan semua langkah

create-clusterContoh berikut digunakan --auto-terminate untuk menentukan bahwa cluster harus dimatikan secara otomatis setelah menyelesaikan semua langkah.

aws emr create-cluster \ --release-label emr-5.9.0 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh 11: Untuk menentukan detail konfigurasi cluster seperti EC2 key pair Amazon, konfigurasi jaringan, dan grup keamanan

create-clusterContoh berikut membuat cluster dengan EC2 key pair Amazon bernama myKey dan profil instance khusus bernamamyProfile. Pasangan kunci digunakan untuk mengotorisasi koneksi SSH ke node cluster, paling sering node master. Untuk informasi selengkapnya, lihat Menggunakan Pasangan EC2 Kunci Amazon untuk Kredenal SSH di Panduan Manajemen EMR Amazon.

aws emr create-cluster \ --ec2-attributes KeyName=myKey,InstanceProfile=myProfile \ --release-label emr-5.9.0 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh berikut membuat cluster di subnet Amazon VPC.

aws emr create-cluster \ --ec2-attributes SubnetId=subnet-xxxxx \ --release-label emr-5.9.0 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh berikut membuat cluster di zona us-east-1b ketersediaan.

aws emr create-cluster \ --ec2-attributes AvailabilityZone=us-east-1b \ --release-label emr-5.9.0 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Contoh berikut membuat cluster dan hanya menentukan grup keamanan Amazon EMR-managed.

aws emr create-cluster \ --release-label emr-5.9.0 \ --service-role myServiceRole \ --ec2-attributes InstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Contoh berikut membuat cluster dan hanya menentukan grup EC2 keamanan Amazon tambahan.

aws emr create-cluster \ --release-label emr-5.9.0 \ --service-role myServiceRole \ --ec2-attributes InstanceProfile=myRole,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4] \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Contoh berikut membuat cluster dan menentukan grup keamanan yang dikelola EMR, serta grup keamanan tambahan.

aws emr create-cluster \ --release-label emr-5.9.0 \ --service-role myServiceRole \ --ec2-attributes InstanceProfile=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-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Contoh berikut membuat cluster di subnet pribadi VPC dan menggunakan grup EC2 keamanan Amazon tertentu untuk mengaktifkan akses layanan EMR Amazon, yang diperlukan untuk cluster di subnet pribadi.

aws emr create-cluster \ --release-label emr-5.9.0 \ --service-role myServiceRole \ --ec2-attributes InstanceProfile=myRole,ServiceAccessSecurityGroup=sg-service-access,EmrManagedMasterSecurityGroup=sg-master,EmrManagedSlaveSecurityGroup=sg-slave \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Contoh berikut menentukan parameter konfigurasi grup keamanan menggunakan file JSON bernama ec2_attributes.json yang disimpan secara lokal. CATATAN: Argumen JSON harus menyertakan opsi dan nilai sebagai item mereka sendiri dalam daftar.

aws emr create-cluster \ --release-label emr-5.9.0 \ --service-role myServiceRole \ --ec2-attributes file://ec2_attributes.json \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

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

Contoh 12: Untuk mengaktifkan debugging dan menentukan URI log

create-clusterContoh berikut menggunakan --enable-debugging parameter, yang memungkinkan Anda untuk melihat file log lebih mudah menggunakan alat debugging di konsol EMR Amazon. --log-uriParameter diperlukan dengan--enable-debugging.

aws emr create-cluster \ --enable-debugging \ --log-uri s3://amzn-s3-demo-bucket/myLog \ --release-label emr-5.9.0 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh 13: Untuk menambahkan tag saat membuat cluster

Tag adalah pasangan nilai kunci yang membantu Anda mengidentifikasi dan mengelola cluster. create-clusterContoh berikut menggunakan --tags parameter untuk membuat tiga tag untuk sebuah cluster, satu dengan nama kunci name dan nilaiShirley Rodriguez, yang kedua dengan nama kunci age dan nilai29, dan tag ketiga dengan nama kunci department dan nilaiAnalytics.

aws emr create-cluster \ --tags name="Shirley Rodriguez" age=29 department="Analytics" \ --release-label emr-5.32.0 \ --instance-type m5.xlarge \ --instance-count 3 \ --use-default-roles

Contoh berikut mencantumkan tag yang diterapkan ke cluster.

aws emr describe-cluster \ --cluster-id j-XXXXXXYY \ --query Cluster.Tags

Contoh 14: Untuk menggunakan konfigurasi keamanan yang memungkinkan enkripsi dan fitur keamanan lainnya

create-clusterContoh berikut menggunakan --security-configuration parameter untuk menentukan konfigurasi keamanan untuk cluster EMR. Anda dapat menggunakan konfigurasi keamanan dengan Amazon EMR versi 4.8.0 atau yang lebih baru.

aws emr create-cluster \ --instance-type m4.large \ --release-label emr-5.9.0 \ --security-configuration mySecurityConfiguration

Contoh 15: Untuk membuat cluster dengan volume penyimpanan EBS tambahan yang dikonfigurasi untuk grup instans

Saat menentukan volume EBS tambahan, argumen berikut diperlukan:VolumeType, SizeInGB jika EbsBlockDeviceConfigs ditentukan.

create-clusterContoh berikut membuat cluster dengan beberapa volume EBS yang dilampirkan ke EC2 instance dalam grup instance inti.

aws emr create-cluster \ --release-label emr-5.9.0 \ --use-default-roles \ --instance-groups InstanceGroupType=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-terminate

Contoh berikut membuat cluster dengan beberapa volume EBS yang dilampirkan ke EC2 instance dalam grup instans master.

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-terminate

Contoh 16: Untuk membuat klaster dengan kebijakan penskalaan otomatis

Anda dapat melampirkan kebijakan penskalaan otomatis ke grup instance inti dan tugas menggunakan Amazon EMR versi 4.0 dan yang lebih baru. Kebijakan penskalaan otomatis secara dinamis menambahkan dan menghapus EC2 instance sebagai respons terhadap metrik Amazon. CloudWatch Untuk informasi selengkapnya, lihat Menggunakan Penskalaan Otomatis di Amazon EMR https://docs.aws.amazon.com/emr/ latest/ManagementGuide/emr < -automatic-scaling.html>`_ di Panduan Manajemen EMR Amazon.

Saat melampirkan kebijakan penskalaan otomatis, Anda juga harus menentukan peran default untuk menggunakan penskalaan otomatis. --auto-scaling-role EMR_AutoScaling_DefaultRole

create-clusterContoh berikut menentukan kebijakan penskalaan otomatis untuk grup CORE instance menggunakan AutoScalingPolicy argumen dengan struktur JSON tertanam, yang menentukan konfigurasi kebijakan penskalaan. Grup instance dengan struktur JSON tertanam harus memiliki seluruh kumpulan argumen yang diapit tanda kutip tunggal. Menggunakan tanda kutip tunggal adalah opsional untuk grup contoh tanpa struktur JSON yang disematkan.

aws emr create-cluster --release-label emr-5.9.0 \ --use-default-roles --auto-scaling-role EMR_AutoScaling_DefaultRole \ --instance-groups InstanceGroupType=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}]}}}]}'

Contoh berikut menggunakan file JSON,instancegroupconfig.json, untuk menentukan konfigurasi semua kelompok instance dalam sebuah cluster. File JSON menentukan konfigurasi kebijakan penskalaan otomatis untuk grup instance inti.

aws emr create-cluster \ --release-label emr-5.9.0 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups file://myfolder/instancegroupconfig.json \ --auto-scaling-role EMR_AutoScaling_DefaultRole

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

Contoh 17: Tambahkan langkah JAR khusus saat membuat cluster

create-clusterContoh berikut menambahkan langkah-langkah dengan menentukan file JAR yang disimpan di Amazon S3. Langkah-langkah mengirimkan pekerjaan ke cluster. Fungsi utama yang didefinisikan dalam file JAR dijalankan setelah EC2 instance disediakan, tindakan bootstrap apa pun telah dijalankan, dan aplikasi diinstal. Langkah-langkah ditentukan menggunakanType=CUSTOM_JAR.

Langkah-langkah JAR khusus memerlukan Jar= parameter, yang menentukan jalur dan nama file JAR. Parameter opsional adalah TypeName,ActionOnFailure,Args,, danMainClass. Jika kelas utama tidak ditentukan, file JAR harus menentukan Main-Class dalam file manifes nya.

aws emr create-cluster \ --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,Args=arg1,arg2,arg3 Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://amzn-s3-demo-bucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3 \ --release-label emr-5.3.1 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh 18: Untuk menambahkan langkah streaming saat membuat cluster

create-clusterContoh berikut menambahkan langkah streaming ke cluster yang berakhir setelah semua langkah berjalan. Langkah streaming membutuhkan parameter Type danArgs. Langkah streaming parameter opsional adalah Name danActionOnFailure.

Contoh berikut menentukan langkah inline.

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-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh berikut menggunakan file konfigurasi JSON yang disimpan secara lokal bernama. multiplefiles.json Konfigurasi JSON menentukan beberapa file. Untuk menentukan beberapa file dalam satu langkah, Anda harus menggunakan file konfigurasi JSON untuk menentukan langkahnya. Argumen JSON harus menyertakan opsi dan nilai sebagai item mereka sendiri dalam daftar.

aws emr create-cluster \ --steps file://./multiplefiles.json \ --release-label emr-5.9.0 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

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

Contoh 19: Untuk menambahkan langkah Hive saat membuat cluster

Contoh berikut menambahkan langkah-langkah Hive saat membuat cluster. Langkah-langkah sarang membutuhkan parameter Type danArgs. Parameter opsional langkah sarang adalah Name danActionOnFailure.

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-label emr-5.3.1 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Contoh 20: Untuk menambahkan langkah Babi saat membuat cluster

Contoh berikut menambahkan langkah Babi saat membuat cluster. Parameter langkah babi yang diperlukan adalah Type danArgs. Parameter opsional langkah babi adalah Name danActionOnFailure.

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-label emr-5.3.1 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

Contoh 21: Untuk menambahkan tindakan bootstrap

create-clusterContoh berikut menjalankan dua tindakan bootstrap didefinisikan sebagai skrip yang disimpan di 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-label emr-5.3.1 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --auto-terminate

Contoh 22: Untuk mengaktifkan tampilan konsisten EMRFS dan menyesuaikan pengaturan dan RetryCount RetryPeriod

create-clusterContoh berikut menentukan hitungan coba lagi dan periode coba lagi untuk tampilan konsisten EMRFS. Consistent=trueArgumen diperlukan.

aws emr create-cluster \ --instance-type m4.large \ --release-label emr-5.9.0 \ --emrfs Consistent=true,RetryCount=6,RetryPeriod=30

Contoh berikut menentukan konfigurasi EMRFS yang sama seperti contoh sebelumnya, menggunakan file konfigurasi JSON yang disimpan secara lokal bernama. emrfsconfig.json

aws emr create-cluster \ --instance-type m4.large \ --release-label emr-5.9.0 \ --emrfs file://emrfsconfig.json

Isi dari emrfsconfig.json:

{ "Consistent": true, "RetryCount": 6, "RetryPeriod": 30 }

Contoh 23: Untuk membuat cluster dengan Kerberos dikonfigurasi

create-clusterContoh berikut membuat cluster menggunakan konfigurasi keamanan dengan Kerberos diaktifkan, dan menetapkan parameter Kerberos untuk cluster menggunakan. --kerberos-attributes

Perintah berikut menentukan atribut Kerberos untuk cluster inline.

aws emr create-cluster \ --instance-type m3.xlarge \ --release-label emr-5.10.0 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --security-configuration mySecurityConfiguration \ --kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=123,CrossRealmTrustPrincipalPassword=123

Perintah berikut menentukan atribut yang sama, tetapi referensi file JSON yang disimpan secara lokal bernama. kerberos_attributes.json Dalam contoh ini, file disimpan di direktori yang sama tempat Anda menjalankan perintah. Anda juga dapat mereferensikan file konfigurasi yang disimpan di Amazon S3.

aws emr create-cluster \ --instance-type m3.xlarge \ --release-label emr-5.10.0 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --security-configuration mySecurityConfiguration \ --kerberos-attributes file://kerberos_attributes.json

Isi dari kerberos_attributes.json:

{ "Realm": "EC2.INTERNAL", "KdcAdminPassword": "123", "CrossRealmTrustPrincipalPassword": "123", }

create-clusterContoh berikut membuat klaster EMR Amazon yang menggunakan --instance-groups konfigurasi dan memiliki kebijakan penskalaan terkelola.

aws emr create-cluster \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large --managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=2,MaximumCapacityUnits=4,UnitType=Instances}'

create-clusterContoh berikut membuat kluster EMR Amazon yang menggunakan “-- log-encryption-kms-key -id” untuk menentukan ID kunci KMS yang digunakan untuk enkripsi Log.

aws emr create-cluster \ --release-label emr-5.30.0 \ --log-uri s3://amzn-s3-demo-bucket/myLog \ --log-encryption-kms-key-id arn:aws:kms:us-east-1:110302272565:key/dd559181-283e-45d7-99d1-66da348c4d33 \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large

create-clusterContoh berikut membuat klaster EMR Amazon yang menggunakan konfigurasi “--placement-group-configs” untuk menempatkan node master dalam klaster ketersediaan tinggi (HA) dalam grup EC2 penempatan menggunakan SPREAD strategi penempatan.

aws emr create-cluster \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large \ --placement-group-configs InstanceRole=MASTER

create-clusterContoh berikut membuat klaster EMR Amazon yang menggunakan konfigurasi “--auto-termination-policy” untuk menempatkan ambang terminasi idle otomatis untuk klaster.

aws emr create-cluster \ --release-label emr-5.34.0 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large \ --auto-termination-policy IdleTimeout=100

create-clusterContoh berikut membuat kluster EMR Amazon yang menggunakan “--os-release-label” untuk menentukan rilis Amazon Linux untuk peluncuran cluster

aws emr create-cluster \ --release-label emr-6.6.0 \ --os-release-label 2.0.20220406.1 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large

Contoh 24: Untuk menentukan atribut volume root EBS: size, iops, dan throughput untuk instance cluster yang dibuat dengan rilis EMR 6.15.0 dan yang lebih baru

create-clusterContoh berikut membuat kluster EMR Amazon yang menggunakan atribut volume root untuk mengonfigurasi spesifikasi volume root untuk instance. EC2

aws emr create-cluster \ --name "Cluster with My Custom AMI" \ --custom-ami-id ami-a518e6df \ --ebs-root-volume-size 20 \ --ebs-root-volume-iops 3000 \ --ebs-root-volume-throughput 125 \ --release-label emr-6.15.0 \ --use-default-roles \ --instance-count 2 \ --instance-type m4.large

Contoh kode berikut menunjukkan cara menggunakancreate-default-roles.

AWS CLI

1. Untuk membuat peran IAM default untuk EC2

Perintah:

aws emr create-default-roles

Output:

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

Contoh kode berikut menunjukkan cara menggunakancreate-security-configuration.

AWS CLI

1. Untuk membuat konfigurasi keamanan dengan enkripsi dalam transit yang diaktifkan dengan PEM untuk penyedia sertifikat, dan enkripsi saat istirahat diaktifkan dengan SSE-S3 untuk enkripsi S3 dan -KMS untuk penyedia kunci disk lokal AWS

Perintah:

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

Output:

{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }

Setara JSON (isi 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" } } } }

Perintah (menggunakan security_configuration.json):

aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json

Output:

{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }

2. Untuk membuat konfigurasi keamanan dengan Kerberos diaktifkan menggunakan KDC khusus cluster dan kepercayaan lintas alam

Perintah:

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

Output:

{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }

Setara JSON (isi 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" } } } } }

Perintah (menggunakan security_configuration.json):

aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json

Output:

{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }

Contoh kode berikut menunjukkan cara menggunakandelete-security-configuration.

AWS CLI

Untuk menghapus konfigurasi keamanan di wilayah saat ini

Perintah:

aws emr delete-security-configuration --name MySecurityConfig

Output:

None

Contoh kode berikut menunjukkan cara menggunakandescribe-cluster.

AWS CLI

Perintah:

aws emr describe-cluster --cluster-id j-XXXXXXXX

Output:

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

Contoh kode berikut menunjukkan cara menggunakandescribe-step.

AWS CLI

Perintah berikut menjelaskan langkah dengan ID langkah s-3LZC0QUT43AM dalam cluster dengan ID clusterj-3SD91U2E1L2QX:

aws emr describe-step --cluster-id j-3SD91U2E1L2QX --step-id s-3LZC0QUT43AM

Output:

{ "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" } }
  • Untuk detail API, lihat DescribeStepdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanget.

AWS CLI

Berikut ini mengunduh hadoop-examples.jar arsip dari instance master di cluster dengan ID clusterj-3SD91U2E1L2QX:

aws emr get --cluster-id j-3SD91U2E1L2QX --key-pair-file ~/.ssh/mykey.pem --src /home/hadoop-examples.jar --dest ~
  • Untuk detail API, lihat Dapatkan Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanlist-clusters.

AWS CLI

Perintah berikut mencantumkan semua cluster EMR aktif di wilayah saat ini:

aws emr list-clusters --active

Output:

{ "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" } ] }
  • Untuk detail API, lihat ListClustersdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanlist-instance-fleets.

AWS CLI

Untuk mendapatkan detail konfigurasi armada instance dalam sebuah cluster

Contoh ini mencantumkan rincian armada instance di cluster yang ditentukan.

Perintah:

list-instance-fleets --cluster-id 'j-12ABCDEFGHI34JK'

Output:

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

Contoh kode berikut menunjukkan cara menggunakanlist-instances.

AWS CLI

Perintah berikut mencantumkan semua instance dalam cluster dengan ID j-3C6XNQ39VR9WL cluster:

aws emr list-instances --cluster-id j-3C6XNQ39VR9WL

Output:

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" } ] }
  • Untuk detail API, lihat ListInstancesdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanlist-security-configurations.

AWS CLI

Untuk membuat daftar konfigurasi keamanan di wilayah saat ini

Perintah:

aws emr list-security-configurations

Output:

{ "SecurityConfigurations": [ { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-1" }, { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-2" } ] }

Contoh kode berikut menunjukkan cara menggunakanlist-steps.

AWS CLI

Perintah berikut mencantumkan semua langkah dalam cluster dengan ID clusterj-3SD91U2E1L2QX:

aws emr list-steps --cluster-id j-3SD91U2E1L2QX
  • Untuk detail API, lihat ListStepsdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanmodify-cluster-attributes.

AWS CLI

Perintah berikut menetapkan visibilitas cluster EMR dengan j-301CDNY0J5XM4 ID untuk semua pengguna:

aws emr modify-cluster-attributes --cluster-id j-301CDNY0J5XM4 --visible-to-all-users

Contoh kode berikut menunjukkan cara menggunakanmodify-instance-fleet.

AWS CLI

Untuk mengubah kapasitas target armada instance

Contoh ini mengubah kapasitas target On-Demand dan Spot menjadi 1 untuk armada instans yang ditentukan.

Perintah:

aws emr modify-instance-fleet --cluster-id 'j-12ABCDEFGHI34JK' --instance-fleet InstanceFleetId='if-2ABC4DEFGHIJ4',TargetOnDemandCapacity=1,TargetSpotCapacity=1

Contoh kode berikut menunjukkan cara menggunakanput.

AWS CLI

Perintah berikut mengunggah file bernama healthcheck.sh ke instance master di cluster dengan ID j-3SD91U2E1L2QX cluster:

aws emr put --cluster-id j-3SD91U2E1L2QX --key-pair-file ~/.ssh/mykey.pem --src ~/scripts/healthcheck.sh --dest /home/hadoop/bin/healthcheck.sh
  • Untuk detail API, lihat Masukkan Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanremove-tags.

AWS CLI

Perintah berikut menghapus tag dengan kunci prod dari cluster dengan ID clusterj-3SD91U2E1L2QX:

aws emr remove-tags --resource-id j-3SD91U2E1L2QX --tag-keys prod
  • Untuk detail API, lihat RemoveTagsdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanschedule-hbase-backup.

AWS CLI

Catatan: Perintah ini hanya dapat digunakan HBase pada AMI versi 2.x dan 3.x

1. Untuk menjadwalkan HBase cadangan penuh >>>>>> 06ab6d6e13564b5733d75abaf3b599f93cf39a23

Perintah:

aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type full --dir s3://amzn-s3-demo-bucket/backup --interval 10 --unit hours --start-time 2014-04-21T05:26:10Z --consistent

Output:

None

2. Untuk menjadwalkan pencadangan tambahan HBase

Perintah:

aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type incremental --dir s3://amzn-s3-demo-bucket/backup --interval 30 --unit minutes --start-time 2014-04-21T05:26:10Z --consistent

Output:

None

Contoh kode berikut menunjukkan cara menggunakansocks.

AWS CLI

Perintah berikut membuka koneksi socks dengan instance master di cluster dengan ID clusterj-3SD91U2E1L2QX:

aws emr socks --cluster-id j-3SD91U2E1L2QX --key-pair-file ~/.ssh/mykey.pem

Opsi key pair file mengambil jalur lokal ke file kunci pribadi.

  • Untuk detail API, lihat Socks in AWS CLI Command Reference.

Contoh kode berikut menunjukkan cara menggunakanssh.

AWS CLI

Perintah berikut membuka koneksi ssh dengan instance master di cluster dengan ID j-3SD91U2E1L2QX cluster:

aws emr ssh --cluster-id j-3SD91U2E1L2QX --key-pair-file ~/.ssh/mykey.pem

Opsi key pair file mengambil jalur lokal ke file kunci pribadi.

Output:

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 ~]$
  • Untuk detail API, lihat Ssh di Referensi AWS CLI Perintah.