View a markdown version of this page

Merencanakan dan mengonfigurasi armada instans untuk klaster EMR Amazon Anda - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Merencanakan dan mengonfigurasi armada instans untuk klaster EMR Amazon Anda

catatan

Konfigurasi armada instance hanya tersedia di Amazon EMR rilis 4.8.0 dan yang lebih baru, tidak termasuk 5.0.0 dan 5.0.3.

Konfigurasi armada instans untuk klaster Amazon EMR memungkinkan Anda memilih berbagai macam opsi penyediaan untuk instans Amazon EC2, dan membantu Anda dalam mengembangkan strategi sumber daya yang fleksibel dan elastis untuk setiap jenis simpul di klaster Anda.

Dalam konfigurasi armada instans, Anda menentukan kapasitas target untuk On-DemandInstans dan Instans Spot dalam setiap armada. Saat klaster diluncurkan, Amazon EMR menyediakan instans hingga target terpenuhi. Saat Amazon EC2 merebut kembali Instans Spot di klaster yang sedang berjalan karena kenaikan harga atau kegagalan instans, Amazon EMR mencoba mengganti instance dengan jenis instans apa pun yang Anda tentukan. Hal ini memudahkan untuk mendapatkan kembali kapasitas selama lonjakan harga Spot.

Anda dapat menentukan maksimal lima jenis instans Amazon EC2 per armada untuk Amazon EMR untuk digunakan saat memenuhi target, atau maksimal 30 jenis instans Amazon EC2 per armada saat Anda membuat klaster menggunakan atau AWS CLI Amazon EMR API dan strategi alokasi untuk dan Instans Spot. On-Demand

Anda juga dapat memilih beberapa subnet untuk Availability Zone yang berbeda. Saat Amazon EMR meluncurkan klaster, ia mencari di seluruh subnet tersebut guna menemukan instans dan opsi pembelian yang Anda tentukan. Jika Amazon EMR mendeteksi peristiwa AWS skala besar di satu atau beberapa Availability Zone, Amazon EMR secara otomatis mencoba merutekan lalu lintas dari Availability Zone yang terkena dampak dan mencoba meluncurkan cluster baru yang Anda buat di Availability Zone alternatif sesuai dengan pilihan Anda. Perhatikan bahwa pemilihan Zona Ketersediaan klaster hanya terjadi pada pembuatan klaster. Node cluster yang ada tidak secara otomatis diluncurkan kembali di Availability Zone baru jika terjadi pemadaman Availability Zone.

Pertimbangan untuk bekerja dengan armada instance

Pertimbangkan item berikut saat Anda menggunakan armada instans dengan Amazon EMR.

  • Anda dapat memiliki satu armada instance, dan hanya satu, per tipe node (primer, inti, tugas). Anda dapat menentukan hingga lima jenis instans Amazon EC2 untuk setiap armada di Konsol Manajemen AWS (atau maksimal 30 jenis per armada instans saat membuat klaster menggunakan atau AWS CLI Amazon EMR API dan file). Strategi alokasi untuk armada instans

  • Amazon EMR memilih salah satu atau semua jenis instans Amazon EC2 yang ditentukan untuk disediakan dengan opsi Spot dan pembelian. On-Demand

  • Anda dapat menetapkan kapasitas target untuk Spot dan On-Demand Instans untuk armada inti dan armada tugas. Gunakan vCPU atau unit generik yang ditetapkan ke setiap instans Amazon EC2 yang diperhitungkan terhadap target. Amazon EMR menyediakan instans hingga setiap kapasitas target terpenuhi sepenuhnya. Untuk armada utama, targetnya selalu satu.

  • Anda dapat memilih satu subnet (Availability Zone) atau rentang. Jika Anda memilih rentang, Amazon EMR akan menyediakan kapasitas di Availability Zone yang paling sesuai.

  • Saat Anda menentukan kapasitas target untuk Instans Spot:

    • Untuk setiap jenis instans, tentukan harga Spot maksimum. Amazon EMR menyediakan Instans Spot jika harga Spot di bawah harga Spot maksimum. Anda tidak selalu membayar harga Spot dengan harga Spot maksimum.

    • Untuk setiap armada, tentukan periode batas waktu untuk menyediakan Instans Spot. Jika Amazon EMR tidak dapat menyediakan kapasitas Spot, Anda dapat menghentikan klaster atau beralih ke kapasitas penyediaanOn-Demand . Ini hanya berlaku untuk penyediaan cluster, bukan mengubah ukurannya. Jika periode batas waktu berakhir selama proses pengubahan ukuran klaster, permintaan Spot yang tidak tersedia akan dibatalkan tanpa mentransfer ke kapasitas. On-Demand

  • Untuk setiap armada, Anda dapat menentukan salah satu strategi alokasi berikut untuk Instans Spot Anda: kapasitas harga yang dioptimalkan, dioptimalkan kapasitas, prioritas yang dioptimalkan kapasitas, harga terendah, atau terdiversifikasi di semua kumpulan.

  • Untuk setiap armada, Anda dapat menerapkan strategi alokasi berikut untuk On-Demand Instans Anda: strategi harga terendah atau strategi yang diprioritaskan.

  • Untuk setiap armada dengan On-Demand Instans, Anda dapat memilih untuk menerapkan opsi reservasi kapasitas.

  • Jika Anda menggunakan strategi alokasi misalnya armada, pertimbangan berikut berlaku ketika Anda memilih subnet untuk klaster EMR Anda:

    • Saat Amazon EMR menyediakan kluster dengan armada tugas, ia menyaring subnet yang tidak memiliki cukup alamat IP yang tersedia untuk menyediakan semua instance klaster EMR yang diminta. Ini termasuk alamat IP yang diperlukan untuk armada instance primer, inti, dan tugas selama peluncuran cluster. Amazon EMR kemudian memanfaatkan strategi alokasi untuk menentukan kumpulan instans, berdasarkan jenis instans dan subnet yang tersisa dengan alamat IP yang memadai, untuk meluncurkan cluster.

    • Jika Amazon EMR tidak dapat meluncurkan seluruh cluster karena alamat IP yang tersedia tidak mencukupi, ia akan mencoba mengidentifikasi subnet dengan alamat IP gratis yang cukup untuk meluncurkan armada instans penting (inti dan primer). Dalam skenario seperti itu, armada instance tugas Anda akan masuk ke status ditangguhkan, daripada mengakhiri cluster dengan kesalahan.

    • Jika tidak ada subnet yang ditentukan berisi alamat IP yang cukup untuk menyediakan inti penting dan armada instance utama, peluncuran cluster akan gagal dengan VALIDATION_ERROR. Ini memicu peristiwa penghentian klaster tingkat keparahan KRITIS, memberi tahu Anda bahwa klaster tidak dapat diluncurkan. Untuk mencegah masalah ini, kami sarankan untuk meningkatkan jumlah alamat IP di subnet Anda.

  • Jika Anda menjalankan Amazon EMR release emr-7.7.0 dan yang lebih baru, dan Anda menggunakan strategi alokasi untuk armada misalnya, Anda dapat menskalakan cluster hingga 4000 instans EC2 dan 14000 volume EBS per armada instans. Untuk versi rilis di bawah emr-7.7.0, cluster hanya dapat ditingkatkan hingga 2000 instans EC2 dan 7000 volume EBS per armada instans.

  • Saat meluncurkan On-Demand Instans, Anda dapat menggunakan reservasi kapasitas terbuka atau tertarget untuk node primer, inti, dan tugas di akun Anda. Anda mungkin melihat kapasitas yang tidak memadai dengan On-Demand Instans dengan strategi alokasi misalnya armada. Kami menyarankan Anda menentukan beberapa jenis instans untuk diversifikasi dan mengurangi kemungkinan mengalami kapasitas yang tidak mencukupi. Untuk informasi selengkapnya, lihat Gunakan reservasi kapasitas dengan armada instans di Amazon EMR.

Opsi armada instans

Gunakan panduan berikut untuk memahami opsi armada instans.

Menetapkan kapasitas target

Tentukan kapasitas target yang Anda inginkan untuk armada inti dan armada tugas. Ketika Anda melakukannya, itu menentukan jumlah On-Demand Instans dan Instans Spot yang disediakan Amazon EMR. Saat Anda menentukan sebuah instans, Anda memutuskan berapa banyak setiap instans diperhitungkan terhadap target. Ketika sebuah On-Demand Instance disediakan, itu dihitung terhadap target. On-Demand Hal yang sama berlaku untuk Instans Spot. Tidak seperti armada inti dan tugas, armada utama selalu satu contoh. Oleh karena itu, target kapasitas armada ini selalu satu.

Saat Anda menggunakan konsol, vCPU jenis instans Amazon EC2 digunakan sebagai hitungan kapasitas target secara default. Anda dapat mengubah ini ke Unit umum, lalu tentukan jumlah untuk setiap jenis instans EC2. Bila Anda menggunakan AWS CLI, Anda secara manual menetapkan unit generik untuk setiap jenis instance.

penting

Saat Anda memilih jenis instance menggunakan Konsol Manajemen AWS, jumlah vCPU yang ditampilkan untuk setiap tipe Instance adalah jumlah vcore YARN untuk jenis instance tersebut, bukan jumlah vCPU EC2 untuk tipe instance tersebut. Untuk informasi selengkapnya tentang jumlah vCPU untuk setiap tipe instans, lihat Tipe Instans Amazon EC2.

Untuk setiap armada, Anda menentukan hingga lima jenis instans Amazon EC2. Jika Anda menggunakan Strategi alokasi untuk armada instans dan membuat klaster menggunakan AWS CLI atau Amazon EMR API, Anda dapat menentukan hingga 30 jenis instans EC2 per armada instans. Amazon EMR memilih kombinasi apa pun dari tipe instans EC2 ini untuk memenuhi kapasitas target Anda. Karena Amazon EMR ingin memenuhi kapasitas target sepenuhnya, kelebihan penggunaan dapat terjadi. Misalnya, jika ada dua unit yang tidak terpenuhi, dan Amazon EMR hanya dapat menyediakan instans dengan jumlah lima unit, instans tersebut masih mendapatkan penyediaan, artinya kapasitas target terlampaui tiga unit.

Jika Anda mengurangi kapasitas target untuk mengubah ukuran klaster yang sedang berjalan, Amazon EMR akan mencoba menyelesaikan tugas aplikasi dan mengakhiri instans untuk memenuhi target baru. Untuk informasi selengkapnya, lihat Akhiri pada penyelesaian tugas.

Opsi peluncuran

Untuk Instans Spot, Anda dapat menentukan Harga Spot maksimum untuk setiap tipe instans dalam armada. Anda dapat menetapkan harga ini baik sebagai persentase dari On-Demand harga, atau sebagai jumlah dolar tertentu. Amazon EMR menyediakan Instans Spot jika harga Spot saat ini di Availability Zone berada di bawah harga Spot maksimum Anda. Anda tidak selalu membayar harga Spot dengan harga Spot maksimum.

catatan

Instans Spot dengan durasi yang ditentukan (juga dikenal sebagai blok Spot) tidak lagi tersedia untuk pelanggan baru mulai 1 Juli 2021. Untuk pelanggan yang sebelumnya telah menggunakan fitur ini, kami akan terus mendukung Instans Spot dengan durasi yang ditentukan hingga 31 Desember 2022.

Tersedia di Amazon EMR 5.12.1 dan yang lebih baru, Anda memiliki opsi untuk meluncurkan armada Spot dan On-Demand Instance dengan alokasi kapasitas yang dioptimalkan. Opsi strategi alokasi ini dapat diatur dalam yang lama Konsol Manajemen AWS atau menggunakan APIRunJobFlow. Perhatikan bahwa Anda tidak dapat menyesuaikan strategi alokasi di konsol baru. Menggunakan opsi strategi alokasi memerlukan izin peran layanan tambahan. Jika Anda menggunakan peran layanan Amazon EMR default dan kebijakan terkelola (EMR_DefaultRoledanAmazonEMRServicePolicy_v2) untuk klaster, izin untuk opsi strategi alokasi sudah disertakan. Jika Anda tidak menggunakan peran layanan Amazon EMR default dan kebijakan terkelola, Anda harus menambahkannya untuk menggunakan opsi ini. Lihat Peran layanan untuk Amazon EMR (peran EMR).

Untuk informasi selengkapnya tentang Instans Spot, lihat Instans Spot di Panduan Pengguna Amazon EC2. Untuk informasi selengkapnya tentang On-Demand Instans, lihat On-DemandInstans di Panduan Pengguna Amazon EC2.

Jika Anda memilih untuk meluncurkan armada On-Demand Instance dengan strategi alokasi harga terendah, Anda memiliki opsi untuk menggunakan reservasi kapasitas. Opsi pencadangan kapasitas dapat diatur menggunakan API Amazon EMR RunJobFlow. Pencadangan kapasitas memerlukan izin peran layanan tambahan yang harus Anda tambahkan untuk menggunakan opsi ini. Lihat Izin strategi alokasi. Perhatikan bahwa Anda tidak dapat menyesuaikan reservasi kapasitas di konsol baru.

Beberapa opsi subnet (Availability Zones)

Saat menggunakan armada instans, Anda dapat menentukan beberapa subnet Amazon EC2 dalam VPC, masing-masing terkait dengan Availability Zone yang berbeda. Jika Anda menggunakanEC2-Classic, Anda menentukan Availability Zones secara eksplisit. Amazon EMR mengidentifikasi Availability Zone terbaik untuk meluncurkan instans sesuai dengan spesifikasi armada Anda. Instans selalu disediakan hanya dalam satu Availability Zone. Anda dapat memilih subnet privat atau subnet publik, tetapi Anda tidak dapat menggabungkan keduanya, dan subnet yang Anda tentukan harus berada dalam VPC yang sama.

Konfigurasi simpul master

Karena armada instance utama hanya satu instance, konfigurasinya sedikit berbeda dari armada instance inti dan tugas. Anda hanya memilih salah satu On-Demand atau Spot untuk armada instance utama karena hanya terdiri dari satu instance. Jika Anda menggunakan konsol untuk membuat armada instans, kapasitas target untuk opsi pembelian yang Anda pilih akan disetel ke 1. Jika Anda menggunakan AWS CLI, selalu atur salah satu TargetSpotCapacity atau TargetOnDemandCapacity ke 1 yang sesuai. Anda masih dapat memilih hingga lima jenis instans untuk armada instans utama (atau maksimal 30 saat Anda menggunakan opsi strategi alokasi untuk On-Demand atau Instans Spot). Namun, tidak seperti armada instance inti dan tugas, di mana Amazon EMR dapat menyediakan beberapa instance dari berbagai jenis, Amazon EMR memilih satu jenis instans untuk disediakan untuk armada instans utama.

Strategi alokasi untuk armada instans

Dengan Amazon EMR versi 5.12.1 dan yang lebih baru, Anda dapat menggunakan opsi strategi alokasi dengan On-Demand dan Instans Spot untuk setiap node cluster. Saat membuat klaster menggunakan AWS CLI, Amazon EMR API, atau konsol EMR Amazon dengan strategi alokasi, Anda dapat menentukan hingga 30 jenis instans Amazon EC2 per armada. Dengan konfigurasi armada instans klaster EMR Amazon default, Anda dapat memiliki hingga 5 jenis instans per armada. Kami merekomendasikan Anda untuk menggunakan opsi strategi alokasi untuk penyediaan klaster yang lebih cepat, alokasi Instans Spot yang lebih akurat, dan gangguan Instans Spot yang lebih sedikit.

Strategi alokasi dengan Instans On-Demand

Strategi alokasi berikut tersedia untuk On-Demand Instans Anda:

lowest-price(default)

Strategi alokasi harga terendah meluncurkan On-Demand contoh dari kumpulan harga terendah yang memiliki kapasitas yang tersedia. Jika kolam dengan harga terendah tidak memiliki kapasitas yang tersedia, On-Demand Instans berasal dari kolam dengan harga terendah berikutnya dengan kapasitas yang tersedia.

prioritized

Strategi alokasi yang diprioritaskan memungkinkan Anda menentukan nilai prioritas untuk setiap jenis instans untuk armada instans Anda. Amazon EMR meluncurkan On-Demand Instans Anda yang memiliki prioritas tertinggi. Jika Anda menggunakan strategi ini, Anda harus mengonfigurasi prioritas untuk setidaknya satu jenis instance. Jika Anda tidak mengonfigurasi nilai prioritas untuk jenis instans, Amazon EMR menetapkan prioritas terendah untuk jenis instans tersebut. Setiap armada instance (primer, inti, atau tugas) dalam sebuah cluster dapat memiliki nilai prioritas yang berbeda untuk jenis instance tertentu.

catatan

Jika Anda menggunakan strategi alokasi Spot yang diprioritaskan yang dioptimalkan kapasitas, Amazon EMR menerapkan prioritas yang sama untuk Instans dan instans Spot saat Anda menetapkan prioritas. On-Demand

Strategi alokasi dengan Instans Spot

Untuk Instans Spot, Anda dapat memilih salah satu strategi alokasi berikut:

price-capacity-optimized (direkomendasikan)

Strategi alokasi yang dioptimalkan dengan kapasitas harga meluncurkan instans Spot dari kumpulan instans Spot yang memiliki kapasitas tertinggi yang tersedia dan harga terendah untuk jumlah instans yang diluncurkan. Akibatnya, strategi yang dioptimalkan dengan kapasitas harga biasanya memiliki peluang lebih tinggi untuk mendapatkan kapasitas Spot, dan memberikan tingkat interupsi yang lebih rendah. Ini adalah strategi default untuk Amazon EMR rilis 6.10.0 dan lebih tinggi.

capacity-optimized

Strategi alokasi yang dioptimalkan kapasitas meluncurkan Instans Spot ke dalam kumpulan yang paling tersedia dengan peluang interupsi terendah dalam waktu dekat. Ini adalah pilihan yang baik untuk beban kerja yang mungkin memiliki biaya interupsi yang lebih tinggi terkait dengan pekerjaan yang dimulai ulang. Ini adalah strategi default untuk Amazon EMR rilis 6.9.0 dan lebih rendah.

capacity-optimized-prioritized

Strategi alokasi prioritas yang dioptimalkan kapasitas memungkinkan Anda menentukan nilai prioritas untuk setiap jenis instans dalam armada instans Anda. Amazon EMR mengoptimalkan kapasitas terlebih dahulu, tetapi ia menghormati prioritas jenis instans dengan upaya terbaik, seperti jika prioritas tidak secara signifikan mempengaruhi kemampuan armada untuk menyediakan kapasitas optimal. Kami merekomendasikan opsi ini jika Anda memiliki beban kerja yang harus memiliki jumlah gangguan minimal yang masih membutuhkan jenis instance tertentu. Jika Anda menggunakan strategi ini, Anda harus mengonfigurasi prioritas untuk setidaknya satu jenis instance. Jika Anda tidak mengonfigurasi prioritas untuk jenis instans apa pun, Amazon EMR menetapkan nilai prioritas terendah untuk jenis instans tersebut. Setiap armada instance (primer, inti, atau tugas) dalam sebuah cluster dapat memiliki nilai prioritas yang berbeda untuk jenis instance tertentu.

catatan

Jika Anda menggunakan strategi On-Demand alokasi yang diprioritaskan, Amazon EMR menerapkan nilai prioritas yang sama untuk Instans Spot On-Demand dan Instans Spot saat Anda menetapkan prioritas.

diversified

Dengan strategi alokasi yang beragam, Amazon EC2 mendistribusikan Instans Spot di semua kumpulan kapasitas Spot.

lowest-price

Strategi alokasi harga terendah meluncurkan Instans Spot dari kumpulan harga terendah yang memiliki kapasitas yang tersedia. Jika kolam dengan harga terendah tidak memiliki kapasitas yang tersedia, Instans Spot berasal dari kolam dengan harga terendah berikutnya yang memiliki kapasitas yang tersedia. Jika kolam kehabisan kapasitas sebelum memenuhi kapasitas yang Anda minta, armada Amazon EC2 mengambil dari kolam dengan harga terendah berikutnya untuk terus memenuhi permintaan Anda. Untuk memastikan bahwa kapasitas yang Anda inginkan terpenuhi, Anda mungkin menerima Instans Spot dari beberapa kolam. Karena strategi ini hanya mempertimbangkan harga instans, dan tidak mempertimbangkan ketersediaan kapasitas, hal itu dapat menyebabkan tingkat interupsi yang tinggi.

Izin strategi alokasi

Opsi strategi alokasi memerlukan beberapa izin IAM yang secara otomatis disertakan dalam peran layanan EMR Amazon default dan kebijakan terkelola Amazon EMR (dan). EMR_DefaultRole AmazonEMRServicePolicy_v2 Jika Anda menggunakan peran layanan kustom atau kebijakan terkelola untuk klaster, Anda harus menambahkan izin ini sebelum membuat klaster. Untuk informasi selengkapnya, lihat Izin strategi alokasi.

Reservasi On-Demand Kapasitas Opsional (ODCR) tersedia saat Anda menggunakan opsi strategi On-Demand alokasi. Opsi pencadangan kapasitas memungkinkan Anda menentukan preferensi dalam menggunakan kapasitas yang dicadangkan terlebih dahulu untuk klaster Amazon EMR. Anda dapat menggunakan ini untuk memastikan bahwa beban kerja kritis Anda menggunakan kapasitas yang telah Anda cadangkan menggunakan ODCR terbuka atau tertarget. Untuk beban kerja yang non-kritis, preferensi pencadangan kapasitas memungkinkan Anda menentukan apakah kapasitas yang dicadangkan harus digunakan.

Pencandangan kapasitas hanya dapat digunakan oleh instans yang cocok dengan atributnya (tipe instans, platform, dan Availability Zone). Secara default, reservasi kapasitas terbuka secara otomatis digunakan oleh Amazon EMR saat On-Demand menyediakan Instans yang cocok dengan atribut instance. Jika Anda tidak memiliki instans berjalan yang cocok dengan atribut pencadangan kapasitas, instans tersebut tetap tidak digunakan hingga Anda meluncurkan instans yang cocok dengan atributnya. Jika Anda tidak ingin menggunakan pencadangan kapasitas apa pun saat meluncurkan klaster, Anda harus menyetel preferensi pencadangan kapasitas ke tidak ada dalam opsi peluncuran.

Namun, Anda juga dapat menargetkan pencadangan kapasitas untuk beban kerja tertentu. Ini memungkinkan Anda untuk secara eksplisit mengontrol instans mana yang diizinkan untuk berjalan dalam kapasitas yang dicadangkan itu. Untuk informasi lebih lanjut tentang reservasi On-Demand kapasitas, lihatGunakan reservasi kapasitas dengan armada instans di Amazon EMR.

Izin IAM yang diperlukan untuk strategi alokasi

Anda Peran layanan untuk Amazon EMR (peran EMR) memerlukan izin tambahan untuk membuat klaster yang menggunakan opsi strategi alokasi untuk On-Demand atau armada Instans Spot.

Kami secara otomatis menyertakan izin ini dalam EMR_DefaultRoleperan layanan EMR Amazon default dan kebijakan terkelola Amazon EMR. AmazonEMRServicePolicy_v2

Jika Anda menggunakan peran layanan kustom atau kebijakan terkelola untuk klaster, Anda harus menambahkan izin berikut:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DeleteLaunchTemplate", "ec2:CreateLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:CreateLaunchTemplateVersion", "ec2:CreateFleet" ], "Resource": [ "*" ], "Sid": "AllowEC2Deletelaunchtemplate" } ] }

Izin peran layanan berikut diperlukan untuk membuat klaster yang menggunakan reservasi kapasitas terbuka atau bertarget. Anda harus menyertakan izin ini selain izin yang diperlukan untuk menggunakan opsi strategi alokasi.

contoh Dokumen kebijakan untuk pencadangan kapasitas peran layanan

Untuk menggunakan pencadangan kapasitas terbuka, Anda harus menyertakan izin tambahan berikut.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions" ], "Resource": [ "*" ], "Sid": "AllowEC2Describecapacityreservations" } ] }
contoh

Untuk menggunakan pencadangan kapasitas yang ditargetkan, Anda harus menyertakan izin tambahan berikut.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions", "resource-groups:ListGroupResources" ], "Resource": [ "*" ], "Sid": "AllowEC2Describecapacityreservations" } ] }

Konfigurasikan armada instance untuk klaster Anda

Console
Untuk membuat cluster dengan armada instance dengan konsol
  1. Masuk ke Konsol Manajemen AWS, dan buka konsol EMR Amazon di. https://console.aws.amazon.com/emr

  2. Di bawah EMR pada EC2 di panel navigasi kiri, pilih Clusters, dan pilih Create cluster.

  3. Di bawah konfigurasi Cluster, pilih Armada Instance.

  4. Untuk setiap grup Node, pilih Tambahkan jenis instans dan pilih hingga 5 tipe instans untuk armada instance primer dan inti dan hingga lima belas tipe instans untuk armada instance tugas. Amazon EMR mungkin menyediakan campuran jenis instans ini saat meluncurkan cluster.

  5. Di bawah setiap tipe grup node, pilih menu tarik-turun Tindakan di samping setiap instance untuk mengubah pengaturan ini:

    Tambahkan volume EBS

    Tentukan volume EBS yang akan dilampirkan ke jenis instans setelah Amazon EMR menyediakannya.

    Edit kapasitas tertimbang

    Untuk grup node inti, ubah nilai ini ke sejumlah unit yang sesuai dengan aplikasi Anda. Jumlah VCores YARN untuk setiap jenis instance armada digunakan sebagai unit kapasitas tertimbang default. Anda tidak dapat mengedit kapasitas tertimbang untuk node utama.

    Edit harga Spot maksimum

    Tentukan harga Spot maksimum untuk setiap jenis instans dalam armada. Anda dapat menetapkan harga ini baik sebagai persentase dari On-Demand harga, atau sebagai jumlah dolar tertentu. Jika harga Spot saat ini di Availability Zone di bawah harga Spot maksimum Anda, Amazon EMR menyediakan Instans Spot. Anda tidak selalu membayar harga Spot dengan harga Spot maksimum.

  6. Secara opsional, untuk menambahkan grup keamanan untuk node Anda, perluas grup keamanan EC2 (firewall) di bagian Jaringan dan pilih grup keamanan Anda untuk setiap jenis node.

  7. Secara opsional, pilih kotak centang di samping Terapkan strategi alokasi jika Anda ingin menggunakan opsi strategi alokasi, dan pilih strategi alokasi yang ingin Anda tentukan untuk Instans Spot. Anda tidak boleh memilih opsi ini jika peran layanan EMR Amazon Anda tidak memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat Strategi alokasi untuk armada instans.

  8. Pilih opsi lain yang berlaku untuk cluster Anda.

  9. Untuk meluncurkan klaster Anda, pilih Buat klaster.

AWS CLI

Untuk membuat dan meluncurkan cluster dengan armada instance dengan AWS CLI, ikuti panduan berikut:

  • Untuk membuat dan meluncurkan sebuah klaster dengan armada instans, gunakan perintah create-cluster bersama dengan parameter --instance-fleet.

  • Untuk mendapatkan detail konfigurasi tentang armada instance dalam sebuah cluster, gunakan list-instance-fleets perintah.

  • Untuk menambahkan beberapa AMI Amazon Linux kustom ke cluster yang Anda buat, gunakan CustomAmiId opsi dengan setiap InstanceType spesifikasi. Anda dapat mengonfigurasi node armada instance dengan beberapa jenis instans dan beberapa AMI kustom agar sesuai dengan kebutuhan Anda. Lihat Contoh: Membuat cluster dengan konfigurasi armada instance.

  • Untuk membuat perubahan pada kapasitas target untuk armada instance, gunakan modify-instance-fleet perintah.

  • Untuk menambahkan armada instance tugas ke cluster yang belum memilikinya, gunakan add-instance-fleet perintah.

  • Beberapa AMI kustom dapat ditambahkan ke armada instance tugas menggunakan CustomAmiId argumen dengan perintah add-instance-fleet. Lihat Contoh: Membuat cluster dengan konfigurasi armada instance.

  • Untuk menggunakan opsi strategi alokasi saat membuat armada instance, perbarui peran layanan untuk menyertakan dokumen kebijakan contoh di bagian berikut.

  • Untuk menggunakan opsi reservasi kapasitas saat membuat armada instans dengan strategi On-Demand alokasi, perbarui peran layanan untuk menyertakan dokumen kebijakan contoh di bagian berikut.

  • Armada instans secara otomatis disertakan dalam peran layanan EMR default dan kebijakan terkelola Amazon EMR (dan). EMR_DefaultRole AmazonEMRServicePolicy_v2 Jika Anda menggunakan peran layanan kustom atau kebijakan terkelola khusus untuk klaster, Anda harus menambahkan izin baru untuk strategi alokasi di bagian berikut.

Contoh: Membuat cluster dengan konfigurasi armada instance

Contoh berikut menunjukkan create-cluster perintah dengan berbagai opsi yang dapat Anda gabungkan.

catatan

Jika sebelumnya Anda belum membuat peran layanan EMR Amazon default dan profil instans EC2, gunakan aws emr create-default-roles untuk membuatnya sebelum menggunakan perintah. create-cluster

contoh Contoh: On-Demand primer, On-Demand inti dengan tipe instance tunggal, VPC Default
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}']
contoh Contoh: Spot primer, inti Spot dengan tipe instance tunggal, VPC default
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}'] \ InstanceFleetType=CORE,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
contoh Contoh: On-Demand primer, inti campuran dengan tipe instans tunggal, subnet EC2 tunggal
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=2,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=2}']
contoh Contoh: On-Demand primer, inti spot dengan beberapa Jenis instans tertimbang, Timeout untuk Spot, Rentang Subnet EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetSpotCapacity=11,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}
contoh Contoh: inti On-Demand utama dan tugas campuran dengan beberapa jenis instans tertimbang, batas waktu untuk Instans Spot inti, rentang subnet EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=8,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} \ InstanceFleetType=TASK,TargetOnDemandCapacity=3,TargetSpotCapacity=3,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']
contoh Contoh: Spot primer, tidak ada inti atau tugas, konfigurasi Amazon EBS, VPC default
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=60,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,\ EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,\ SizeIn GB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iop s=100},VolumesPerInstance=4}]}}']
contoh Contoh: Beberapa AMI kustom, beberapa jenis instans, primer sesuai permintaan, inti sesuai permintaan
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}']
contoh Contoh: Tambahkan node tugas ke cluster yang sedang berjalan dengan beberapa jenis instance dan beberapa AMI kustom
aws emr add-instance-fleet --cluster-id j-123456 --release-label Amazon EMR 5.3.1 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleet \ InstanceFleetType=Task,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456}',\ '{InstanceType=m6g.xlarge,CustomAmiId=ami-234567}']
contoh Contoh: Gunakan file konfigurasi JSON

Anda dapat mengkonfigurasi parameter armada instans dalam file JSON, lalu mereferensikan file JSON sebagai parameter tunggal untuk armada instans. Misalnya, perintah berikut merujuk file konfigurasi JSON, my-fleet-config.json:

aws emr create-cluster --release-label emr-5.30.0 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets file://my-fleet-config.json

my-fleet-config.jsonFile menentukan armada primer, inti, dan instance tugas seperti yang ditunjukkan pada contoh berikut. Armada instance inti menggunakan harga Spot maksimum (BidPrice) sebagai persentase On-Demand, sedangkan armada tugas dan instance utama menggunakan harga Spot maksimum (BidPriceAsPercentageofOnDemandPrice) sebagai string dalam USD.

[ { "Name": "Masterfleet", "InstanceFleetType": "MASTER", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "SWITCH_TO_ON_DEMAND" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }, { "Name": "Corefleet", "InstanceFleetType": "CORE", "TargetSpotCapacity": 1, "TargetOnDemandCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "String" } }, "SpotSpecification": { "AllocationStrategy": "capacity-optimized", "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK", "TargetSpotCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } }, "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] } ]

Ubah kapasitas target untuk armada instans

Gunakan perintah modify-instance-fleet untuk menentukan kapasitas target baru armada instans. Anda harus menentukan ID klaster dan ID armada instans. Gunakan perintah list-instance-fleets untuk mengambil ID armada instans.

aws emr modify-instance-fleet --cluster-id <cluster-id> \ --instance-fleet \ InstanceFleetId='<instance-fleet-id>',TargetOnDemandCapacity=1,TargetSpotCapacity=1

Tambahkan armada instans tugas ke klaster

Jika cluster hanya memiliki armada instance primer dan inti, Anda dapat menggunakan add-instance-fleet perintah untuk menambahkan armada instance tugas. Anda hanya dapat menggunakan ini untuk menambahkan armada instans tugas.

aws emr add-instance-fleet --cluster-id <cluster-id> --instance-fleet \ InstanceFleetType=TASK,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']

Dapatkan detail konfigurasi armada instans dalam sebuah klaster

Gunakan perintah list-instance-fleets untuk mendapatkan detail konfigurasi armada instans dalam sebuah klaster. Perintah mengambil ID klaster sebagai input. Contoh berikut menunjukkan perintah dan outputnya untuk cluster yang berisi grup instance tugas utama dan grup instance tugas inti. Untuk sintaks respons lengkap, lihat ListInstanceFleetsdi Referensi API EMR Amazon.

list-instance-fleets --cluster-id <cluster-id>
{ "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": "m5.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": "m5.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ] }