Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat cluster dengan versi AMI sebelumnya dari Amazon EMR
Amazon EMR 2.x dan 3.x rilis direferensikan oleh Versi AMI. Dengan rilis Amazon EMR 4.0.0 dan kemudian, rilis direferensikan oleh versi rilis, menggunakan label rilis seperti emr-5.11.0
. Perubahan ini paling terlihat saat Anda membuat cluster menggunakan AWS CLI atau secara terprogram.
Saat Anda menggunakan AWS CLI untuk membuat klaster menggunakan versi rilis AMI, gunakan --ami-version
opsi, misalnya,--ami-version 3.11.0
. Banyak pilihan, fitur, dan aplikasi yang diperkenalkan di Amazon EMR 4.0.0 dan kemudian tidak tersedia ketika Anda menentukan --ami-version
. Untuk informasi selengkapnya, lihat Buat Gugus di AWS CLI Referensi.
Contoh AWS CLI perintah berikut meluncurkan cluster menggunakan versi AMI.
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"
]
Pemrograman, semua versi rilis Amazon EMR menggunakan RunJobFlowRequest
di API EMR untuk membuat cluster. Berikut contoh kode Java menciptakan sebuah cluster menggunakan AMI versi 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.6.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, cluster EMR tetap ukuran yang sama selama seluruh cluster; Anda menetapkan jumlah tugas ketika Anda membuat cluster. 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 tahan kegagalan node tugas dan terus eksekusi cluster bahkan jika node tugas menjadi tidak tersedia. Amazon EMR secara otomatis ketentuan node tugas tambahan untuk menggantikan orang-orang 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.