Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh Amazon EMR menggunakan AWS CLI
Contoh kode berikut menunjukkan cara melakukan tindakan dan menerapkan skenario umum dengan menggunakan AWS Command Line Interface dengan Amazon EMR.
Tindakan merupakan 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.
Topik
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" }-
Untuk detail API, lihat AddInstanceFleet
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanadd-steps.
- AWS CLI
-
1. Untuk menambahkan langkah-langkah JAR Kustom ke cluster
Perintah:
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,arg3Parameter yang diperlukan:
JarParameter opsional:
Type, Name, ActionOnFailure, ArgsOutput:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }2. Untuk menambahkan langkah-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://amzn-s3-demo-bucket/wordcount/output]Parameter yang diperlukan:
Type, ArgsParameter opsional:
Name, ActionOnFailureSetara 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://amzn-s3-demo-bucket/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.jsonOutput:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }3. Untuk menambahkan langkah Streaming dengan beberapa file ke cluster (hanya JSON)
JSON (beberapa files.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"] } ]Perintah:
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./multiplefiles.jsonParameter yang diperlukan:
Type, ArgsParameter opsional:
Name, ActionOnFailureOutput:
{ "StepIds":[ "s-XXXXXXXX", ] }4. Untuk menambahkan langkah-langkah Hive ke cluster
Perintah:
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]Parameter yang diperlukan:
Type, ArgsParameter opsional:
Name, ActionOnFailureOutput:
{ "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://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]Parameter yang diperlukan:
Type, ArgsParameter opsional:
Name, ActionOnFailureOutput:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }6. Untuk menambahkan langkah-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/outputParameter yang diperlukan:
Type, ArgsParameter opsional:
Name, ActionOnFailureOutput:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }-
Untuk detail API, lihat AddSteps
di Refer AWS CLI ensi 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:
None2. Untuk mencantumkan tag cluster
--Perintah:
aws emr describe-cluster --cluster-idj-XXXXXXYY--queryCluster.TagsOutput:
[ { "Value": "male", "Key": "sex" }, { "Value": "123 East NW Seattle", "Key": "address" }, { "Value": "John Doe", "Key": "name" }, { "Value": "29", "Key": "age" } ]-
Untuk detail API, lihat AddTags
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakancreate-cluster-examples.
- AWS CLI
-
Sebagian besar contoh berikut mengasumsikan bahwa Anda menentukan peran layanan Amazon EMR dan profil instans Amazon EC2. Jika Anda belum melakukan ini, Anda harus menentukan setiap peran IAM yang diperlukan atau menggunakan
--use-default-rolesparameter saat membuat cluster Anda. Untuk informasi selengkapnya tentang menentukan peran IAM, lihat Meng onfigurasi Peran IAM untuk Izin Amazon EMR ke AWS Layanan di Panduan Manajemen Amazon EMR.Contoh 1: Untuk membuat cluster
create-clusterContoh berikut membuat cluster EMR sederhana.aws emr create-cluster \ --release-labelemr-5.14.0\ --instance-typem4.large\ --instance-count2Perintah ini tidak menghasilkan output.
Contoh 2: Untuk membuat cluster Amazon EMR dengan default ServiceRole dan peran InstanceProfile
create-clusterContoh berikut membuat cluster Amazon EMR yang menggunakan--instance-groupskonfigurasi.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.largeContoh 3: Untuk membuat cluster Amazon EMR yang menggunakan armada instans
create-clusterContoh berikut membuat cluster Amazon EMR yang menggunakan--instance-fleetskonfigurasi, menentukan dua jenis instans untuk setiap armada dan dua Subnets EC2.aws 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}'}Contoh 4: Untuk membuat cluster dengan peran default
create-clusterContoh berikut menggunakan--use-default-rolesparameter untuk menentukan peran layanan default dan profil instance.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-terminateContoh 5: Untuk membuat cluster dan menentukan aplikasi yang akan diinstal
create-clusterContoh berikut menggunakan--applicationsparameter untuk menentukan aplikasi yang diinstal Amazon EMR. Contoh ini menginstal Hadoop, Hive dan 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-terminateContoh 6: Untuk membuat cluster yang menyertakan Spark
Contoh berikut menginstal 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-terminateContoh 7: Untuk menentukan AMI khusus yang akan digunakan untuk instans cluster
create-clusterContoh berikut membuat instance cluster berdasarkan AMI Amazon Linux dengan 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.largeContoh 8: Untuk menyesuaikan konfigurasi aplikasi
Contoh berikut menggunakan
--configurationsparameter untuk menentukan file konfigurasi JSON yang berisi penyesuaian 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 berikut merujuk
configurations.jsonsebagai file lokal.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-terminateContoh berikut merujuk
configurations.jsonsebagai file di 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-terminateContoh 9: Untuk membuat cluster dengan master, core, dan grup instance tugas
create-clusterContoh berikut digunakan--instance-groupsuntuk menentukan jenis dan jumlah instans EC2 yang akan digunakan untuk grup instans master, inti, dan tugas.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=2Contoh 10: Untuk menentukan bahwa cluster harus dihentikan setelah menyelesaikan semua langkah
create-clusterContoh berikut digunakan--auto-terminateuntuk menentukan bahwa cluster harus dimatikan secara otomatis setelah menyelesaikan semua langkah.aws emr create-cluster \ --release-labelemr-5.9.0\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large\ --auto-terminateContoh 11: Untuk menentukan detail konfigurasi cluster seperti pasangan kunci Amazon EC2, konfigurasi jaringan, dan grup keamanan
create-clusterContoh berikut membuat cluster dengan nama pasangan kunci Amazon EC2myKeydan profil instans khusus bernamamyProfile. Pasangan kunci digunakan untuk mengotorisasi koneksi SSH ke node cluster, paling sering node master. Untuk informasi selengkapnya, lihat Menggunakan Pasangan Kunci Amazon EC2 untuk KredenSIAL SSH di Panduan Manajemen 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-terminateContoh berikut membuat cluster di subnet 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-terminateContoh berikut membuat cluster di zona
us-east-1bketersediaan.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.largeContoh berikut membuat cluster dan hanya menentukan grup EMR-managed keamanan Amazon.
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.largeContoh berikut membuat cluster dan hanya menentukan grup keamanan Amazon EC2 tambahan.
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.largeContoh berikut membuat cluster dan menentukan grup EMR-Managed keamanan, serta grup keamanan tambahan.
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.largeContoh berikut membuat cluster di subnet pribadi VPC dan menggunakan grup keamanan Amazon EC2 tertentu untuk mengaktifkan akses layanan Amazon EMR, yang diperlukan untuk cluster di subnet pribadi.
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.largeContoh berikut menentukan parameter konfigurasi grup keamanan menggunakan file JSON bernama
ec2_attributes.jsonyang disimpan secara lokal. CATATAN: Argumen JSON harus menyertakan opsi dan nilai sebagai item mereka sendiri dalam daftar.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.largeIsi 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-debuggingparameter, yang memungkinkan Anda untuk melihat file log dengan lebih mudah menggunakan alat debugging di konsol Amazon EMR.--log-uriParameter diperlukan dengan--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-terminateContoh 13: Untuk menambahkan tag saat membuat cluster
Tag adalah pasangan kunci-nilai yang membantu Anda mengidentifikasi dan mengelola cluster.
create-clusterContoh berikut menggunakan--tagsparameter untuk membuat tiga tag untuk cluster, satu dengan nama kuncinamedan nilaiShirley Rodriguez, yang kedua dengan nama kunciagedan nilai29, dan tag ketiga dengan nama kuncidepartmentdan nilaiAnalytics.aws emr create-cluster \ --tags name="Shirley Rodriguez"age=29department="Analytics" \ --release-labelemr-5.32.0\ --instance-typem5.xlarge\ --instance-count3\ --use-default-rolesContoh berikut mencantumkan tag yang diterapkan pada cluster.
aws emr describe-cluster \ --cluster-idj-XXXXXXYY\ --queryCluster.TagsContoh 14: Untuk menggunakan konfigurasi keamanan yang mengaktifkan enkripsi dan fitur keamanan lainnya
create-clusterContoh berikut menggunakan--security-configurationparameter 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-typem4.large\ --release-labelemr-5.9.0\ --security-configurationmySecurityConfigurationContoh 15: Untuk membuat cluster dengan volume penyimpanan EBS tambahan yang dikonfigurasi untuk grup instans
Saat menentukan volume EBS tambahan, argumen berikut diperlukan:
VolumeType,SizeInGBjikaEbsBlockDeviceConfigsditentukan.create-clusterContoh berikut membuat cluster dengan beberapa volume EBS yang dilampirkan ke instans EC2 dalam grup instans inti.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-terminateContoh berikut membuat cluster dengan beberapa volume EBS yang dilampirkan ke instans EC2 dalam grup instans master.
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-terminateContoh 16: Untuk membuat cluster 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 menambah dan menghapus instans EC2 sebagai respons terhadap CloudWatch metrik Amazon. 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 Amazon EMR.
Saat melampirkan kebijakan penskalaan otomatis, Anda juga harus menentukan peran default untuk penggunaan penskalaan otomatis
--auto-scaling-role EMR_AutoScaling_DefaultRole.create-clusterContoh berikut menentukan kebijakan penskalaan otomatis untuk grupCOREinstance menggunakanAutoScalingPolicyargumen dengan struktur JSON tertanam, yang menentukan konfigurasi kebijakan penskalaan. Grup instance dengan struktur JSON tertanam harus memiliki seluruh koleksi argumen yang terlampir dalam tanda kutip tunggal. Menggunakan tanda kutip tunggal adalah opsional untuk contoh grup tanpa struktur JSON tertanam.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}]}}}]}'Contoh berikut menggunakan file JSON,
instancegroupconfig.json, untuk menentukan konfigurasi semua grup instance dalam sebuah cluster. File JSON menentukan konfigurasi kebijakan penskalaan otomatis untuk grup instance inti.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_DefaultRoleIsi 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 ditentukan dalam file JAR dijalankan setelah instans EC2 disediakan, tindakan bootstrap apa pun telah dijalankan, dan aplikasi diinstal. Langkah-langkah ditentukan menggunakanType=CUSTOM_JAR.Langkah-langkah JAR kustom memerlukan
Jar=parameter, yang menentukan jalur dan nama file JAR. Parameter opsional adalahTypeName,ActionOnFailure,Args,, danMainClass. Jika kelas utama tidak ditentukan, file JAR harus ditentukanMain-Classdalam file manifesnya.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-terminateContoh 18: Untuk menambahkan langkah-langkah streaming saat membuat cluster
create-clusterContoh berikut menambahkan langkah streaming ke cluster yang berakhir setelah semua langkah dijalankan. Langkah-langkah streaming memerlukan parameterTypedanArgs. Langkah streaming parameter opsional adalahNamedanActionOnFailure.Contoh berikut menentukan langkah sebaris.
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-terminateContoh 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 langkah. Argumen JSON harus menyertakan opsi dan nilai sebagai item mereka sendiri dalam daftar.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-terminateIsi 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://amzn-s3-demo-bucket/wordcount/output" ], "ActionOnFailure": "CONTINUE", "Type": "STREAMING" } ]Contoh 19: Untuk menambahkan langkah-langkah Hive saat membuat cluster
Contoh berikut menambahkan langkah-langkah Hive saat membuat cluster. Langkah-langkah sarang membutuhkan parameter
TypedanArgs. Parameter opsional langkah sarang adalahNamedanActionOnFailure.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.largeContoh 20: Untuk menambahkan langkah Pig saat membuat cluster
Contoh berikut menambahkan langkah-langkah Pig saat membuat cluster. Parameter langkah babi yang diperlukan adalah
TypedanArgs. Parameter opsional langkah babi adalahNamedanActionOnFailure.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.largeContoh 21: Untuk menambahkan tindakan bootstrap
create-clusterContoh berikut menjalankan dua tindakan bootstrap yang didefinisikan sebagai skrip yang disimpan di 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-terminateContoh 22: Untuk mengaktifkan tampilan yang konsisten EMRFS dan menyesuaikan pengaturan dan RetryCount RetryPeriod
create-clusterContoh berikut menentukan jumlah percobaan ulang dan periode percobaan ulang untuk tampilan konsisten EMRFS. ArConsistent=truegumen diperlukan.aws emr create-cluster \ --instance-typem4.large\ --release-labelemr-5.9.0\ --emrfsConsistent=true,RetryCount=6,RetryPeriod=30Contoh berikut menentukan konfigurasi EMRFS yang sama seperti contoh sebelumnya, menggunakan file konfigurasi JSON yang disimpan secara lokal bernama.
emrfsconfig.jsonaws emr create-cluster \ --instance-typem4.large\ --release-labelemr-5.9.0\ --emrfsfile://emrfsconfig.jsonIsi 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-attributesPerintah berikut menentukan atribut Kerberos untuk cluster inline.
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=123Perintah berikut menentukan atribut yang sama, tetapi mereferensikan 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-typem3.xlarge\ --release-labelemr-5.10.0\ --service-roleEMR_DefaultRole\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole\ --security-configurationmySecurityConfiguration\ --kerberos-attributesfile://kerberos_attributes.jsonIsi dari
kerberos_attributes.json:{ "Realm": "EC2.INTERNAL", "KdcAdminPassword": "123", "CrossRealmTrustPrincipalPassword": "123", }create-clusterContoh berikut membuat cluster Amazon EMR yang menggunakan--instance-groupskonfigurasi dan memiliki kebijakan penskalaan terkelola.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}'create-clusterContoh berikut membuat cluster Amazon EMR yang menggunakan “--log-encryption-kms-key-id” untuk menentukan ID kunci KMS yang digunakan untuk enkripsi 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.largecreate-clusterContoh berikut membuat cluster Amazon EMR yang menggunakan konfigurasi “--placement-group-config” untuk menempatkan node master dalam cluster dengan ketersediaan tinggi (HA) dalam grup penempatan EC2 menggunakan strategi penempatan.SPREADaws 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=MASTERcreate-clusterContoh berikut membuat cluster Amazon EMR yang menggunakan konfigurasi “--auto-termination-policy” untuk menempatkan ambang batas penghentian idle otomatis untuk 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=100create-clusterContoh berikut membuat cluster Amazon EMR yang menggunakan “--os-release-label” untuk menentukan rilis Amazon Linux untuk peluncuran 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.largeContoh 24: Untuk menentukan atribut volume root EBS: ukuran, iops, dan throughput untuk instans cluster yang dibuat dengan rilis EMR 6.15.0 dan yang lebih baru
create-clusterContoh berikut membuat cluster Amazon EMR yang menggunakan atribut volume root untuk mengonfigurasi spesifikasi volume root untuk instans EC2.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-
Untuk detail API, lihat CreateClusterExamples
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakancreate-default-roles.
- AWS CLI
-
1. Untuk membuat peran IAM default untuk EC2
Perintah:
aws emr create-default-rolesOutput:
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":"2012-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":"2012-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" } } ]-
Untuk detail API, lihat CreateDefaultRoles
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakancreate-security-configuration.
- AWS CLI
-
1. Untuk membuat konfigurasi keamanan dengan enkripsi in-transit diaktifkan dengan PEM untuk penyedia sertifikat, dan enkripsi at-rest diaktifkan dengan SSE-S3 enkripsi S3 dan AWS-KMS untuk penyedia kunci disk lokal
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.jsonOutput:
{ "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.jsonOutput:
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }-
Untuk detail API, lihat CreateSecurityConfiguration
di Refer AWS CLI ensi Perintah.
-
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 MySecurityConfigOutput:
None-
Untuk detail API, lihat DeleteSecurityConfiguration
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakandescribe-cluster.
- AWS CLI
-
Perintah:
aws emr describe-cluster --cluster-id j-XXXXXXXXOutput:
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" } }-
Untuk detail API, lihat DescribeCluster
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakandescribe-step.
- AWS CLI
-
Perintah berikut menjelaskan langkah dengan ID langkah
s-3LZC0QUT43AMdalam cluster dengan ID clusterj-3SD91U2E1L2QX:aws emr describe-step --cluster-idj-3SD91U2E1L2QX--step-ids-3LZC0QUT43AMOutput:
{ "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 DescribeStep
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanget.
- AWS CLI
-
Berikut ini mengunduh ar
hadoop-examples.jarsip dari instance master dalam cluster dengan ID clusterj-3SD91U2E1L2QX:aws emr get --cluster-idj-3SD91U2E1L2QX--key-pair-file~/.ssh/mykey.pem--src/home/hadoop-examples.jar--dest~-
Untuk detail API, lihat Get https://awscli.amazonaws.com/v2/documentation/api/latest/reference/emr/get.html
in AWS CLI Command Reference.
-
Contoh kode berikut menunjukkan cara menggunakanlist-clusters.
- AWS CLI
-
Perintah berikut mencantumkan semua cluster EMR aktif di wilayah saat ini:
aws emr list-clusters --activeOutput:
{ "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 ListClusters
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanlist-instance-fleets.
- AWS CLI
-
Untuk mendapatkan detail konfigurasi armada instans dalam cluster
Contoh ini mencantumkan rincian armada instans dalam 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" } ] }-
Untuk detail API, lihat ListInstanceFleets
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanlist-instances.
- AWS CLI
-
Perintah berikut mencantumkan semua instance dalam cluster dengan ID cluster
j-3C6XNQ39VR9WL:aws emr list-instances --cluster-idj-3C6XNQ39VR9WLOutput:
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 ListInstances
di Refer AWS CLI ensi 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-configurationsOutput:
{ "SecurityConfigurations": [ { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-1" }, { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-2" } ] }-
Untuk detail API, lihat ListSecurityConfigurations
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanlist-steps.
- AWS CLI
-
Perintah berikut mencantumkan semua langkah dalam cluster dengan ID cluster
j-3SD91U2E1L2QX:aws emr list-steps --cluster-idj-3SD91U2E1L2QX-
Untuk detail API, lihat ListSteps
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanlist-studios.
- AWS CLI
-
Untuk daftar Studio EMR yang tersedia
list-studiosContoh berikut mencantumkan Studio EMR di AWS akun. :aws emr list-studiosOutput:
{ "Studios": [ { "StudioId": "es-XXXXXXX132E0X7R0W7GAS1MVB", "Name": "My_EMR_Studio", "Url": "https://es-XXXXXXX132E0X7R0W7GAS1MVB.emrstudio-prod.us-east-1.amazonaws.com", "AuthMode": "IAM", "CreationTime": 1761664173.624 } ] }Untuk informasi selengkapnya, lihat Memantau, memperbarui, dan menghapus sumber daya Amazon EMR Studio di Panduan Manajemen Amazon EMR.
-
Untuk detail API, lihat ListStudios
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanmodify-cluster-attributes.
- AWS CLI
-
Perintah berikut menetapkan visibilitas cluster EMR dengan ID
j-301CDNY0J5XM4untuk semua pengguna:aws emr modify-cluster-attributes --cluster-idj-301CDNY0J5XM4--visible-to-all-users-
Untuk detail API, lihat ModifyClusterAttributes
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanmodify-instance-fleet.
- AWS CLI
-
Untuk mengubah kapasitas target armada instans
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-
Untuk detail API, lihat ModifyInstanceFleet
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanput.
- AWS CLI
-
Perintah berikut mengunggah file bernama
healthcheck.shke instance master dalam cluster dengan ID cluster:j-3SD91U2E1L2QXaws emr put --cluster-idj-3SD91U2E1L2QX--key-pair-file~/.ssh/mykey.pem--src~/scripts/healthcheck.sh--dest/home/hadoop/bin/healthcheck.sh-
Untuk detail API, lihat Masukkan Refer
ensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanremove-tags.
- AWS CLI
-
Perintah berikut menghapus tag dengan kunci
proddari cluster dengan ID clusterj-3SD91U2E1L2QX:aws emr remove-tags --resource-idj-3SD91U2E1L2QX--tag-keysprod-
Untuk detail API, lihat RemoveTags
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanschedule-hbase-backup.
- AWS CLI
-
Catatan: Perintah ini hanya dapat digunakan dengan HBase pada AMI versi 2.x dan 3.x
1. Untuk menjadwalkan cadangan HBase lengkap >>>>> 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 --consistentOutput:
None2. Untuk menjadwalkan cadangan HBase inkremental
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 --consistentOutput:
None-
Untuk detail API, lihat ScheduleHbaseBackup
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakansocks.
- AWS CLI
-
Perintah berikut membuka koneksi socks dengan instance master dalam cluster dengan ID cluster
j-3SD91U2E1L2QX:aws emr socks --cluster-idj-3SD91U2E1L2QX--key-pair-file~/.ssh/mykey.pemOpsi file pasangan kunci mengambil jalur lokal ke file kunci pribadi.
-
Untuk detail API, lihat Socks
di Refer AWS CLI ensi Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanssh.
- AWS CLI
-
Perintah berikut membuka koneksi ssh dengan instance master dalam cluster dengan ID cluster
j-3SD91U2E1L2QX:aws emr ssh --cluster-idj-3SD91U2E1L2QX--key-pair-file~/.ssh/mykey.pemOpsi file pasangan kunci 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 Refer AWS CLI ensi Perintah.
-