Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
EMRContoh Amazon menggunakan AWS CLI
Contoh kode berikut menunjukkan kepada Anda cara melakukan tindakan dan mengimplementasikan skenario umum dengan menggunakan AWS Command Line Interface With AmazonEMR.
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.
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 API detailnya, lihat AddInstanceFleet
di Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanadd-steps
.
- AWS CLI
-
1. Untuk menambahkan JAR langkah Kustom ke klaster
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
JSONsetara (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" } ]
NOTE: JSON argumen 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 (JSONhanya)
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 API detailnya, lihat AddSteps
di 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 membuat daftar tag dari sebuah cluster
--Perintah:
aws emr describe-cluster --cluster-id
j-XXXXXXYY
--queryCluster.Tags
Output:
[ { "Value": "male", "Key": "sex" }, { "Value": "123 East NW Seattle", "Key": "address" }, { "Value": "John Doe", "Key": "name" }, { "Value": "29", "Key": "age" } ]
-
Untuk API detailnya, lihat AddTags
di Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakancreate-cluster-examples
.
- AWS CLI
-
Sebagian besar contoh berikut mengasumsikan bahwa Anda menentukan peran EMR layanan Amazon dan profil EC2 instans Amazon. Jika Anda belum melakukan ini, Anda harus menentukan setiap IAM peran yang diperlukan atau menggunakan
--use-default-roles
parameter saat membuat cluster Anda. Untuk informasi selengkapnya tentang menentukan IAM peran, lihat Mengonfigurasi IAM EMR Peran untuk Izin Amazon ke AWS Layanan di Panduan EMRManajemen Amazon.Contoh 1: Untuk membuat cluster
create-cluster
Contoh berikut membuat EMR cluster sederhana.aws emr create-cluster \ --release-label
emr-5.14.0
\ --instance-typem4.large
\ --instance-count2
Perintah ini tidak menghasilkan output.
Contoh 2: Untuk membuat EMR klaster Amazon dengan default ServiceRole dan InstanceProfile peran
create-cluster
Contoh berikut membuat EMR cluster Amazon yang menggunakan--instance-groups
konfigurasi.aws emr create-cluster \ --release-label
emr-5.14.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Contoh 3: Untuk membuat EMR klaster Amazon yang menggunakan armada instance
create-cluster
Contoh berikut membuat EMR klaster Amazon yang menggunakan--instance-fleets
konfigurasi, menentukan dua jenis instance untuk setiap armada dan dua EC2 Subnet.aws emr create-cluster \ --release-label
emr-5.14.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m4.large}'] InstanceFleetType=CORE,TargetSpotCapacity=11,InstanceTypeConfigs=['{InstanceType=m4.large,BidPrice=0.5,WeightedCapacity=3}','{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}Contoh 4: Untuk membuat cluster dengan peran default
create-cluster
Contoh 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-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh 5: Untuk membuat cluster dan menentukan aplikasi yang akan diinstal
create-cluster
Contoh berikut menggunakan--applications
parameter untuk menentukan aplikasi yang EMR diinstal Amazon. Contoh ini menginstal Hadoop, Hive dan Pig.aws emr create-cluster \ --applications
Name=Hadoop
Name=Hive
Name=Pig
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh 6: Untuk membuat cluster yang menyertakan Spark
Contoh berikut menginstal Spark.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --applicationsName=Spark
\ --ec2-attributesKeyName=myKey
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh 7: Untuk menentukan kustom yang AMI akan digunakan untuk instance cluster
create-cluster
Contoh berikut membuat instance cluster berdasarkan Amazon Linux AMI 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.large
Contoh 8: Untuk menyesuaikan konfigurasi aplikasi
Contoh berikut menggunakan
--configurations
parameter untuk menentukan file JSON konfigurasi yang berisi kustomisasi aplikasi untuk Hadoop. Untuk informasi selengkapnya, lihat Mengonfigurasi Aplikasi di Panduan EMR Rilis Amazon.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-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh referensi berikut
configurations.json
sebagai file di Amazon S3.aws emr create-cluster \ --configurations
https://s3.amazonaws.com/myBucket/configurations.json
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh 9: Untuk membuat cluster dengan master, inti, dan grup instance tugas
create-cluster
Contoh 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-groupsName=Master,InstanceGroupType=MASTER,InstanceType=m4.large,InstanceCount=1
Name=Core,InstanceGroupType=CORE,InstanceType=m4.large,InstanceCount=2
Name=Task,InstanceGroupType=TASK,InstanceType=m4.large,InstanceCount=2
Contoh 10: Untuk menentukan bahwa cluster harus dihentikan setelah menyelesaikan semua langkah
create-cluster
Contoh 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-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh 11: Untuk menentukan detail konfigurasi klaster seperti EC2 key pair Amazon, konfigurasi jaringan, dan grup keamanan
create-cluster
Contoh berikut membuat cluster dengan EC2 key pair Amazon bernamamyKey
dan profil instance khusus bernamamyProfile
. Pasangan kunci digunakan untuk mengotorisasi SSH koneksi ke node cluster, paling sering node master. Untuk informasi selengkapnya, lihat Menggunakan Pasangan EC2 Kunci Amazon untuk SSH Kredensyal di Panduan EMRManajemen Amazon.aws emr create-cluster \ --ec2-attributes
KeyName=myKey,InstanceProfile=myProfile
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh berikut membuat cluster di VPC subnet Amazon.
aws emr create-cluster \ --ec2-attributes
SubnetId=subnet-xxxxx
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh berikut membuat cluster di zona
us-east-1b
ketersediaan.aws emr create-cluster \ --ec2-attributes
AvailabilityZone=us-east-1b
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Contoh berikut membuat klaster dan hanya menentukan grup keamanan yang EMR dikelola Amazon.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Contoh berikut membuat cluster dan hanya menentukan grup EC2 keamanan Amazon tambahan.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4]
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Contoh berikut membuat cluster dan menentukan grup keamanan EMR -Managed, serta grup keamanan tambahan.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4]
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Contoh berikut membuat cluster di subnet VPC pribadi dan menggunakan grup EC2 keamanan Amazon tertentu untuk mengaktifkan akses EMR layanan Amazon, yang diperlukan untuk cluster di subnet pribadi.
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,ServiceAccessSecurityGroup=sg-service-access,EmrManagedMasterSecurityGroup=sg-master,EmrManagedSlaveSecurityGroup=sg-slave
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Contoh berikut menentukan parameter konfigurasi grup keamanan menggunakan JSON file bernama
ec2_attributes.json
yang disimpan secara lokal. NOTE: JSON argumen harus menyertakan opsi dan nilai sebagai item mereka sendiri dalam daftar.aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesfile://ec2_attributes.json
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
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 log URI
create-cluster
Contoh berikut menggunakan--enable-debugging
parameter, yang memungkinkan Anda untuk melihat file log lebih mudah menggunakan alat debugging di EMR konsol Amazon.--log-uri
Parameter diperlukan dengan--enable-debugging
.aws emr create-cluster \ --enable-debugging \ --log-uri
s3://myBucket/myLog
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh 13: Untuk menambahkan tag saat membuat cluster
Tag adalah pasangan nilai kunci yang membantu Anda mengidentifikasi dan mengelola cluster.
create-cluster
Contoh berikut menggunakan--tags
parameter untuk membuat tiga tag untuk sebuah cluster, satu dengan nama kunciname
dan nilaiShirley Rodriguez
, yang kedua dengan nama kunciage
dan nilai29
, dan tag ketiga dengan nama kuncidepartment
dan nilaiAnalytics
.aws emr create-cluster \ --tags name="Shirley Rodriguez"
age=29
department="Analytics" \ --release-labelemr-5.32.0
\ --instance-typem5.xlarge
\ --instance-count3
\ --use-default-rolesContoh berikut mencantumkan tag yang diterapkan ke cluster.
aws emr describe-cluster \ --cluster-id
j-XXXXXXYY
\ --queryCluster.Tags
Contoh 14: Untuk menggunakan konfigurasi keamanan yang memungkinkan enkripsi dan fitur keamanan lainnya
create-cluster
Contoh berikut menggunakan--security-configuration
parameter untuk menentukan konfigurasi keamanan untuk sebuah EMR cluster. 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-labelemr-5.9.0
\ --security-configurationmySecurityConfiguration
Contoh 15: Untuk membuat cluster dengan volume EBS penyimpanan tambahan yang dikonfigurasi untuk grup instans
Saat menentukan EBS volume tambahan, argumen berikut diperlukan:
VolumeType
,SizeInGB
jikaEbsBlockDeviceConfigs
ditentukan.create-cluster
Contoh berikut membuat cluster dengan beberapa EBS volume yang dilampirkan ke EC2 instance dalam grup instance inti.aws emr create-cluster \ --release-label
emr-5.9.0
\ --use-default-roles \ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=d2.xlarge
'InstanceGroupType=CORE,InstanceCount=2,InstanceType=d2.xlarge,EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,SizeInGB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iops=100},VolumesPerInstance=4}]}
' \ --auto-terminateContoh berikut membuat cluster dengan beberapa EBS volume yang dilampirkan ke EC2 instance di grup instance 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-terminateContoh 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 Amazon. EMR
Saat melampirkan kebijakan penskalaan otomatis, Anda juga harus menentukan peran default untuk penskalaan otomatis yang digunakan.
--auto-scaling-role EMR_AutoScaling_DefaultRole
create-cluster
Contoh berikut menentukan kebijakan penskalaan otomatis untuk grupCORE
instance menggunakanAutoScalingPolicy
argumen dengan JSON struktur tertanam, yang menentukan konfigurasi kebijakan penskalaan. Grup instance dengan JSON struktur tertanam harus memiliki seluruh kumpulan argumen yang tertutup dalam tanda kutip tunggal. Menggunakan tanda kutip tunggal adalah opsional untuk grup contoh tanpa JSON struktur tertanam.aws emr create-cluster --release-label
emr-5.9.0
\ --use-default-roles --auto-scaling-roleEMR_AutoScaling_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceType=d2.xlarge,InstanceCount=1
'InstanceGroupType=CORE,InstanceType=d2.xlarge,InstanceCount=2,AutoScalingPolicy={Constraints={MinCapacity=1,MaxCapacity=5},Rules=[{Name=TestRule,Description=TestDescription,Action={Market=ON_DEMAND,SimpleScalingPolicyConfiguration={AdjustmentType=EXACT_CAPACITY,ScalingAdjustment=2}},Trigger={CloudWatchAlarmDefinition={ComparisonOperator=GREATER_THAN,EvaluationPeriods=5,MetricName=TestMetric,Namespace=EMR,Period=3,Statistic=MAXIMUM,Threshold=4.5,Unit=NONE,Dimensions=[{Key=TestKey,Value=TestValue}]}}}]}
'Contoh berikut menggunakan JSON file,
instancegroupconfig.json
, untuk menentukan konfigurasi semua kelompok instance dalam sebuah cluster. JSONFile menentukan konfigurasi kebijakan penskalaan otomatis untuk grup instance inti.aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsfile://myfolder/instancegroupconfig.json
\ --auto-scaling-roleEMR_AutoScaling_DefaultRole
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 JAR langkah-langkah khusus saat membuat cluster
create-cluster
Contoh berikut menambahkan langkah-langkah dengan menentukan JAR file yang disimpan di Amazon S3. Langkah-langkah mengirimkan pekerjaan ke cluster. Fungsi utama yang didefinisikan dalam JAR file dijalankan setelah EC2 instance disediakan, tindakan bootstrap apa pun telah dijalankan, dan aplikasi diinstal. Langkah-langkah ditentukan menggunakanType=CUSTOM_JAR
.JARLangkah-langkah kustom memerlukan
Jar=
parameter, yang menentukan path dan nama file dari file. JAR Parameter opsional adalahType
Name
,ActionOnFailure
,Args
,, danMainClass
. Jika kelas utama tidak ditentukan, JAR file harus menentukanMain-Class
dalam file manifes nya.aws emr create-cluster \ --steps
Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://myBucket/mytest.jar,Args=arg1,arg2,arg3
Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://myBucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh 18: Untuk menambahkan langkah streaming saat membuat cluster
create-cluster
Contoh berikut menambahkan langkah streaming ke cluster yang berakhir setelah semua langkah berjalan. Langkah streaming membutuhkan parameterType
danArgs
. Langkah streaming parameter opsional adalahName
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-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh berikut menggunakan file JSON konfigurasi yang disimpan secara lokal bernama
multiplefiles.json
. JSONKonfigurasi menentukan beberapa file. Untuk menentukan beberapa file dalam satu langkah, Anda harus menggunakan file JSON konfigurasi untuk menentukan langkahnya. JSONargumen harus menyertakan opsi dan nilai sebagai item mereka sendiri dalam daftar.aws emr create-cluster \ --steps
file://./multiplefiles.json
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-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://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 adalahName
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-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=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 adalahName
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-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
Contoh 21: Untuk menambahkan tindakan bootstrap
create-cluster
Contoh 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-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminateContoh 22: Untuk mengaktifkan tampilan yang EMRFS konsisten dan menyesuaikan RetryPeriod pengaturan RetryCount dan
create-cluster
Contoh berikut menentukan hitungan coba lagi dan coba lagi periode untuk EMRFS tampilan yang konsisten.Consistent=true
Argumen diperlukan.aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsConsistent=true,RetryCount=6,RetryPeriod=30
Contoh berikut menentukan EMRFS konfigurasi yang sama seperti contoh sebelumnya, menggunakan file JSON konfigurasi yang disimpan secara lokal bernama.
emrfsconfig.json
aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsfile://emrfsconfig.json
Isi dari
emrfsconfig.json
:{ "Consistent": true, "RetryCount": 6, "RetryPeriod": 30 }
Contoh 23: Untuk membuat cluster dengan Kerberos dikonfigurasi
create-cluster
Contoh 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-labelemr-5.10.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --security-configurationmySecurityConfiguration
\ --kerberos-attributesRealm=EC2.INTERNAL,KdcAdminPassword=123,CrossRealmTrustPrincipalPassword=123
Perintah berikut menentukan atribut yang sama, tetapi referensi JSON file 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-labelemr-5.10.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --security-configurationmySecurityConfiguration
\ --kerberos-attributesfile://kerberos_attributes.json
Isi dari
kerberos_attributes.json
:{ "Realm": "EC2.INTERNAL", "KdcAdminPassword": "123", "CrossRealmTrustPrincipalPassword": "123", }
create-cluster
Contoh berikut membuat EMR klaster Amazon yang menggunakan--instance-groups
konfigurasi dan memiliki kebijakan penskalaan terkelola.aws emr create-cluster \ --release-label
emr-5.30.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
--managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=2,MaximumCapacityUnits=4,UnitType=Instances}'create-cluster
Contoh berikut membuat EMR cluster Amazon yang menggunakan “-- log-encryption-kms-key -id” untuk menentukan ID KMS kunci yang digunakan untuk enkripsi Log.aws emr create-cluster \ --release-label
emr-5.30.0
\ --log-uris3://myBucket/myLog
\ --log-encryption-kms-key-idarn:aws:kms:us-east-1:110302272565:key/dd559181-283e-45d7-99d1-66da348c4d33
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
create-cluster
Contoh berikut membuat EMR klaster Amazon yang menggunakan konfigurasi “--placement-group-configs” untuk menempatkan node master dalam klaster ketersediaan tinggi (HA) dalam grup EC2 penempatan menggunakan strategiSPREAD
penempatan.aws emr create-cluster \ --release-label
emr-5.30.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=3,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large
\ --placement-group-configsInstanceRole=MASTER
create-cluster
Contoh berikut membuat EMR klaster 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-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large
\ --auto-termination-policyIdleTimeout=100
create-cluster
Contoh berikut membuat EMR klaster Amazon yang menggunakan “--os-release-label” untuk menentukan rilis Amazon Linux untuk peluncuran klasteraws emr create-cluster \ --release-label
emr-6.6.0
\ --os-release-label2.0.20220406.1
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large
Contoh 24: Untuk menentukan atribut volume EBS root: size, iops, dan throughput untuk instance cluster yang dibuat dengan EMR rilis 6.15.0 dan yang lebih baru
create-cluster
Contoh berikut membuat EMR klaster Amazon yang menggunakan atribut volume root untuk mengonfigurasi spesifikasi volume root untuk EC2 instance.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 API detailnya, lihat CreateClusterExamples
di Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakancreate-default-roles
.
- AWS CLI
-
1. Untuk membuat IAM peran 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" } } ]
-
Untuk API detailnya, lihat CreateDefaultRoles
di Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakancreate-security-configuration
.
- AWS CLI
-
1. Untuk membuat konfigurasi keamanan dengan enkripsi dalam transit yang diaktifkan dengan PEM penyedia sertifikat, dan enkripsi saat istirahat diaktifkan dengan SSE -S3 untuk 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" }
JSONsetara (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 cluster-dedicated dan cross-realm trust
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" }
JSONsetara (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" }
-
Untuk API detailnya, lihat CreateSecurityConfiguration
di Referensi AWS CLI 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 MySecurityConfig
Output:
None
-
Untuk API detailnya, lihat DeleteSecurityConfiguration
di Referensi AWS CLI Perintah.
-
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" } }
-
Untuk API detailnya, lihat DescribeCluster
di Referensi AWS CLI Perintah.
-
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-ids-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 API detailnya, lihat DescribeStep
di 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 API detailnya, lihat Dapatkan
Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanlist-clusters
.
- AWS CLI
-
Perintah berikut mencantumkan semua EMR cluster 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 API detailnya, lihat ListClusters
di 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" } ] }
-
Untuk API detailnya, lihat ListInstanceFleets
di Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanlist-instances
.
- AWS CLI
-
Perintah berikut mencantumkan semua instance dalam sebuah 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 API detailnya, lihat ListInstances
di 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" } ] }
-
Untuk API detailnya, lihat ListSecurityConfigurations
di Referensi AWS CLI 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-id
j-3SD91U2E1L2QX
-
Untuk API detailnya, lihat ListSteps
di Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanmodify-cluster-attributes
.
- AWS CLI
-
Perintah berikut menetapkan visibilitas EMR cluster dengan ID
j-301CDNY0J5XM4
untuk semua pengguna:aws emr modify-cluster-attributes --cluster-id
j-301CDNY0J5XM4
--visible-to-all-users-
Untuk API detailnya, lihat ModifyClusterAttributes
di Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanmodify-instance-fleet
.
- AWS CLI
-
Untuk mengubah kapasit 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-
Untuk API detailnya, lihat ModifyInstanceFleet
di Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakanput
.
- AWS CLI
-
Perintah berikut mengunggah file bernama
healthcheck.sh
ke instance master di cluster dengan IDj-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 API detailnya, 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-keysprod
-
Untuk API detailnya, lihat RemoveTags
di 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://myBucket/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://myBucket/backup --interval 30 --unit minutes --start-time 2014-04-21T05:26:10Z --consistent
Output:
None
-
Untuk API detailnya, lihat ScheduleHbaseBackup
di Referensi AWS CLI Perintah.
-
Contoh kode berikut menunjukkan cara menggunakansocks
.
- AWS CLI
-
Perintah berikut membuka koneksi socks dengan instance master di cluster dengan ID cluster
j-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 API detailnya, lihat Kaus Kaki
di Referensi AWS CLI Perintah.
-
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 API detailnya, lihat Ssh
di Referensi AWS CLI Perintah.
-