Membuat cluster dengan AMI versi Amazon sebelumnya EMR - Amazon EMR

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-version 3.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.