Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat cluster dengan AMI versi Amazon sebelumnya EMR
Rilis Amazon EMR 2.x dan 3.x direferensikan berdasarkan versi. AMI Dengan EMR rilis Amazon 4.0.0 dan yang lebih baru, rilis direferensikan berdasarkan versi rilis, menggunakan label rilis seperti. emr-5.11.0
Perubahan ini paling terlihat saat Anda membuat cluster menggunakan AWS CLI atau secara terprogram.
Bila Anda menggunakan AWS CLI untuk membuat cluster menggunakan versi AMI rilis, gunakan --ami-version
opsi, misalnya,--ami-version 3.11.0
. Banyak opsi, fitur, dan aplikasi yang diperkenalkan di Amazon EMR 4.0.0 dan yang lebih baru tidak tersedia saat Anda menentukan file. --ami-version
Untuk informasi selengkapnya, lihat Buat Gugus di AWS CLI Referensi.
Contoh AWS CLI perintah berikut meluncurkan cluster menggunakan AMI versi.
catatan
Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).
aws emr create-cluster --name "
Test cluster
" --ami-version3.11.0
\ --applications Name=Hue
Name=Hive
Name=Pig
\ --use-default-roles --ec2-attributes KeyName=myKey
\ --instance-groups InstanceGroupType=MASTER
,InstanceCount=1
,\ InstanceType=m3.xlarge
InstanceGroupType=CORE
,InstanceCount=2
,\ InstanceType=m3.xlarge
--bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hadoop
,\ Name="Configuring infinite JVM reuse"
,Args=["-m","mapred.job.reuse.jvm.num.tasks=-1"
]
Secara terprogram, semua versi EMR rilis Amazon menggunakan RunJobFlowRequest
tindakan di EMR API untuk membuat cluster. Contoh kode Java berikut membuat cluster menggunakan versi AMI rilis 3.11.0.
RunJobFlowRequest request = new RunJobFlowRequest() .withName("AmiVersion Cluster") .withAmiVersion("3.11.0") .withInstances(new JobFlowInstancesConfig() .withEc2KeyName("myKeyPair") .withInstanceCount(1) .withKeepJobFlowAliveWhenNoSteps(true) .withMasterInstanceType("m3.xlarge") .withSlaveInstanceType("m3.xlarge");
Berikut ini RunJobFlowRequest
panggilan menggunakan label rilis sebagai gantinya:
RunJobFlowRequest request = new RunJobFlowRequest() .withName("ReleaseLabel Cluster") .withReleaseLabel("
emr-7.3.0
") .withInstances(new JobFlowInstancesConfig() .withEc2KeyName("myKeyPair") .withInstanceCount(1) .withKeepJobFlowAliveWhenNoSteps(true) .withMasterInstanceType("m3.xlarge") .withSlaveInstanceType("m3.xlarge");
Mengonfigurasi ukuran cluster
Ketika cluster Anda berjalan, Hadoop menentukan jumlah mapper dan peredam tugas yang diperlukan untuk memproses data. Cluster yang lebih besar harus memiliki lebih banyak tugas untuk penggunaan sumber daya yang lebih baik dan waktu pemrosesan yang. Biasanya, sebuah EMR cluster tetap berukuran sama selama seluruh cluster; Anda mengatur jumlah tugas saat Anda membuat klaster. Ketika Anda mengubah ukuran cluster berjalan, Anda dapat bervariasi pengolahan selama eksekusi cluster. Oleh karena itu, alih-alih menggunakan sejumlah tugas tetap, Anda dapat memvariasikan jumlah tugas selama kehidupan cluster. Ada dua opsi konfigurasi untuk membantu mengatur jumlah tugas yang ideal:
-
mapred.map.tasksperslot
-
mapred.reduce.tasksperslot
Anda dapat mengatur kedua pilihan di mapred-conf.xml
file. Ketika Anda mengirimkan pekerjaan ke cluster, klien pekerjaan memeriksa jumlah total saat peta dan mengurangi slot tersedia clusterwide. Klien pekerjaan kemudian menggunakan persamaan berikut untuk mengatur jumlah tugas:
-
mapred.map.tasks
=mapred.map.tasksperslot
* slot peta di cluster -
mapred.reduce.tasks
=mapred.reduce.tasksperslot
* mengurangi slot di cluster
Klien pekerjaan hanya membaca tasksperslot
parameter jika jumlah tugas tidak dikonfigurasi. Anda dapat mengganti jumlah tugas setiap saat, baik untuk semua cluster melalui tindakan bootstrap atau secara individual per pekerjaan dengan menambahkan langkah untuk mengubah konfigurasi.
Amazon EMR menahan kegagalan node tugas dan melanjutkan eksekusi klaster meskipun node tugas menjadi tidak tersedia. Amazon EMR secara otomatis menyediakan node tugas tambahan untuk menggantikan yang gagal.
Anda dapat memiliki nomor yang berbeda dari node tugas untuk setiap langkah cluster. Anda juga dapat menambahkan langkah untuk menjalankan cluster untuk mengubah jumlah node tugas. Karena semua langkah dijamin untuk menjalankan secara berurutan secara default, Anda dapat menentukan jumlah menjalankan tugas node untuk setiap langkah.