Merencanakan dan mengonfigurasi armada instans untuk klaster Amazon EMR - 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 Amazon EMR

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 EMR klaster Amazon memungkinkan Anda memilih berbagai opsi penyediaan untuk EC2 instans Amazon, dan membantu Anda mengembangkan strategi sumber daya yang fleksibel dan elastis untuk setiap jenis node di cluster Anda.

Dalam konfigurasi armada instans, tentukan Kapasitas targetuntuk Instans Sesuai Permintaan dan Instans Spot dalam setiap armada. Saat klaster diluncurkan, Amazon EMR menyediakan instance 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 EC2 instans Amazon per armada EMR untuk digunakan Amazon saat memenuhi target, atau maksimal 30 jenis EC2 instans Amazon per armada saat Anda membuat klaster menggunakan AWS CLI atau Amazon EMR API dan strategi alokasi untuk Instans Sesuai Permintaan dan Spot.

Anda juga dapat memilih beberapa subnet untuk Availability Zone yang berbeda. Saat Amazon EMR meluncurkan cluster, ia melihat subnet tersebut untuk menemukan instance 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 instance dengan AmazonEMR.

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

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

  • Anda dapat menetapkan kapasitas target bagi Instans Spot dan Sesuai Permintaan untuk armada inti dan armada tugas. Gunakan v CPU atau unit generik yang ditetapkan untuk setiap EC2 instans Amazon yang diperhitungkan terhadap target. Amazon EMR menyediakan instance sampai setiap kapasitas target benar-benar terpenuhi. Untuk armada utama, targetnya selalu satu.

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

  • 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 tidak EMR dapat menyediakan kapasitas Spot, Anda dapat menghentikan klaster atau beralih ke penyediaan kapasitas Sesuai Permintaan. 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 Sesuai Permintaan.

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

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

  • Untuk setiap armada dengan Instans Sesuai Permintaan, Anda dapat memilih untuk menerapkan opsi reservasi kapasitas.

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

    • Saat Amazon EMR menyediakan kluster dengan armada tugas, Amazon memfilter subnet yang tidak memiliki cukup alamat IP yang tersedia untuk menyediakan semua instance klaster yang dimintaEMR. 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 cukup, untuk meluncurkan cluster.

    • Jika Amazon EMR tidak dapat meluncurkan seluruh cluster karena alamat IP yang tersedia tidak mencukupi, Amazon 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 CRITICALtingkat keparahan, memberi tahu Anda bahwa klaster tidak dapat diluncurkan. Untuk mencegah masalah ini, kami sarankan untuk meningkatkan jumlah alamat IP di subnet Anda.

  • Saat meluncurkan Instans Sesuai Permintaan, Anda dapat menggunakan reservasi kapasitas terbuka atau bertarget untuk node primer, inti, dan tugas di akun Anda. Anda mungkin melihat kapasitas yang tidak mencukupi dengan Instans Sesuai Permintaan 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 Instans Sesuai Permintaan dan Instans Spot yang disediakan Amazon. EMR Saat Anda menentukan sebuah instans, Anda memutuskan berapa banyak setiap instans diperhitungkan terhadap target. Saat Instans Sesuai Permintaan disediakan, ia diperhitungkan dalam target Sesuai Permintaan. 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, jenis EC2 instans Amazon digunakan sebagai hitungan kapasitas target secara default. vCPUs Anda dapat mengubah ini ke unit Generik, dan kemudian menentukan hitungan untuk setiap jenis EC2 instance. Bila Anda menggunakan AWS CLI, Anda secara manual menetapkan unit generik untuk setiap jenis instance.

penting

Saat Anda memilih jenis instance menggunakan AWS Management Console, jumlah v yang CPU ditampilkan untuk setiap jenis Instance adalah jumlah YARN vcore untuk jenis instance tersebut, bukan jumlah EC2 vCPUs untuk jenis instance tersebut. Untuk informasi selengkapnya tentang jumlah vCPUs untuk setiap jenis instans, lihat Jenis EC2 Instance Amazon.

Untuk setiap armada, Anda menentukan hingga lima jenis EC2 instans Amazon. Jika Anda menggunakan Strategi alokasi untuk armada instans dan membuat klaster menggunakan AWS CLI atau Amazon EMRAPI, Anda dapat menentukan hingga 30 jenis EC2 instans per armada instans. Amazon EMR memilih kombinasi jenis EC2 instans ini untuk memenuhi kapasitas target Anda. Karena Amazon EMR ingin mengisi kapasitas target sepenuhnya, kelebihan mungkin terjadi. Misalnya, jika ada dua unit yang tidak terpenuhi, dan Amazon hanya EMR dapat menyediakan instance dengan hitungan lima unit, instance masih akan disediakan, artinya kapasitas target terlampaui tiga unit.

Jika Anda mengurangi kapasitas target untuk mengubah ukuran klaster yang sedang berjalan, Amazon EMR mencoba menyelesaikan tugas aplikasi dan menghentikan instance 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 sebagai persentase dari harga Sesuai Permintaan, atau sebagai jumlah dolar tertentu. Amazon menyediakan EMR 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 versi lebih baru, Anda memiliki opsi untuk meluncurkan armada Instans Spot dan Sesuai Permintaan dengan alokasi kapasitas yang dioptimalkan. Opsi strategi alokasi ini dapat diatur dalam yang lama AWS Management Console atau menggunakan. API RunJobFlow Perhatikan bahwa Anda tidak dapat menyesuaikan strategi alokasi di konsol baru. Menggunakan opsi strategi alokasi memerlukan izin peran layanan tambahan. Jika Anda menggunakan peran EMR layanan Amazon default dan kebijakan terkelola (EMR_DefaultRoledanAmazonEMRServicePolicy_v2) untuk klaster, izin untuk opsi strategi alokasi sudah disertakan. Jika Anda tidak menggunakan peran EMR layanan Amazon default dan kebijakan terkelola, Anda harus menambahkannya untuk menggunakan opsi ini. Lihat Peran layanan untuk Amazon EMR (EMRperan).

Untuk informasi selengkapnya tentang Instans Spot, lihat Instans Spot di EC2 Panduan Pengguna Amazon. Untuk informasi selengkapnya tentang Instans Sesuai Permintaan, lihat Instans Sesuai Permintaan di Panduan Pengguna Amazon. EC2

Jika Anda memilih untuk meluncurkan armada Instans Sesuai Permintaan dengan strategi alokasi harga terendah, Anda memiliki opsi untuk menggunakan pencadangan kapasitas. Opsi reservasi kapasitas dapat diatur menggunakan Amazon EMR APIRunJobFlow. 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)

Bila Anda menggunakan armada instance, Anda dapat menentukan beberapa EC2 subnet Amazon dalam satuVPC, masing-masing terkait dengan Availability Zone yang berbeda. Jika Anda menggunakan EC2 -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 pribadi atau subnet publik, tetapi Anda tidak dapat mencampur keduanya, dan subnet yang Anda tentukan harus berada dalam yang sama. VPC

Konfigurasi simpul master

Karena armada instance utama hanya satu instance, konfigurasinya sedikit berbeda dari armada instance inti dan tugas. Anda hanya memilih On-Demand atau Spot untuk armada instans 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 Instans On-Demand atau Spot). Namun, tidak seperti armada instance inti dan tugas, di mana Amazon EMR mungkin menyediakan beberapa instance dari tipe yang berbeda, Amazon EMR memilih satu jenis instance 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 Instans Sesuai Permintaan dan Spot untuk setiap node cluster. Saat membuat klaster menggunakan EMR konsol AWS CLI, Amazon EMRAPI, atau Amazon dengan strategi alokasi, Anda dapat menentukan hingga 30 jenis EC2 instans Amazon per armada. Dengan konfigurasi armada instans EMR klaster 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 Sesuai Permintaan

Strategi alokasi berikut tersedia untuk Instans Sesuai Permintaan Anda:

lowest-price(default)

Strategi alokasi harga terendah meluncurkan instans On-Demand dari kumpulan harga terendah yang memiliki kapasitas yang tersedia. Jika kolam dengan harga terendah tidak memiliki kapasitas yang tersedia, Instans Sesuai Permintaan 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 Instans Sesuai Permintaan 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 instance 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 capacity-optimized-prioritizedSpot, Amazon EMR menerapkan prioritas yang sama untuk Instans Sesuai Permintaan dan instans Spot saat Anda menetapkan prioritas.

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 rilis Amazon 6.10.0 dan lebih tinggi. EMR

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 merilis 6.9.0 dan lebih rendah.

capacity-optimized-prioritized

Strategi capacity-optimized-prioritized alokasi memungkinkan Anda menentukan nilai prioritas untuk setiap jenis instans dalam armada instans Anda. Amazon EMR mengoptimalkan kapasitas terlebih dahulu, tetapi ia menghormati prioritas tipe 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 instance 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 Sesuai Permintaan yang diprioritaskan, Amazon EMR menerapkan nilai prioritas yang sama untuk Instans Sesuai Permintaan dan 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, EC2 armada Amazon menarik 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 IAM izin yang secara otomatis disertakan dalam peran EMR layanan Amazon default dan kebijakan EMR terkelola Amazon (EMR_DefaultRoledanAmazonEMRServicePolicy_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 Kapasitas Sesuai Permintaan (ODCRs) opsional tersedia saat Anda menggunakan opsi strategi alokasi Sesuai Permintaan. Opsi reservasi kapasitas memungkinkan Anda menentukan preferensi untuk menggunakan kapasitas cadangan terlebih dahulu untuk EMR klaster Amazon. Anda dapat menggunakan ini untuk memastikan bahwa beban kerja kritis Anda menggunakan kapasitas yang telah Anda pesan menggunakan terbuka atau ditargetkanODCRs. 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 menyediakan Instans Sesuai Permintaan 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 selengkapnya tentang reservasi kapasitas Sesuai Permintaan, lihat. Gunakan reservasi kapasitas dengan armada instans di Amazon EMR

IAMIzin yang diperlukan untuk strategi alokasi

Peran layanan untuk Amazon EMR (EMRperan) Anda memerlukan izin tambahan guna membuat cluster yang menggunakan opsi strategi alokasi untuk armada Instans Sesuai Permintaan atau Spot.

Kami secara otomatis menyertakan izin ini dalam peran EMR layanan Amazon default EMR_DefaultRoledan kebijakan EMR AmazonEMRServicePolicy_v2terkelola Amazon.

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

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

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.

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

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

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

Konfigurasikan armada instance untuk klaster Anda

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

  2. Di bawah EMREC2di 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 instance ini saat meluncurkan klaster.

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

    Tambahkan EBS volume

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

    Edit kapasitas tertimbang

    Untuk grup node inti, ubah nilai ini ke sejumlah unit yang sesuai dengan aplikasi Anda. Jumlah YARN vCores 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 sebagai persentase dari harga Sesuai Permintaan, atau sebagai jumlah dolar tertentu. Jika harga Spot saat ini di Availability Zone di bawah harga Spot maksimum Anda, Amazon menyediakan EMR Instans Spot. Anda tidak selalu membayar harga Spot dengan harga Spot maksimum.

  6. Secara opsional, untuk menambahkan grup keamanan untuk node Anda, perluas grup EC2 keamanan (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 EMR layanan 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 di cluster, gunakan list-instance-fleets perintah.

  • Untuk menambahkan beberapa Amazon Linux kustom AMIs ke cluster yang Anda buat, gunakan CustomAmiId opsi dengan setiap InstanceType spesifikasi. Anda dapat mengonfigurasi node armada instance dengan beberapa jenis instans dan beberapa kustom AMIs 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 kustom AMIs dapat ditambahkan ke armada instance tugas menggunakan CustomAmiId argumen dengan add-instance-fleet perintah. 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 alokasi Sesuai Permintaan, perbarui peran layanan untuk menyertakan dokumen kebijakan contoh di bagian berikut.

  • Armada instance secara otomatis disertakan dalam peran EMR layanan default dan kebijakan EMR terkelola Amazon (EMR_DefaultRoledanAmazonEMRServicePolicy_v2). Jika Anda menggunakan peran layanan kustom atau kebijakan terkelola kustom 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 EMR layanan Amazon default dan profil EC2 instance, gunakan aws emr create-default-roles untuk membuatnya sebelum menggunakan create-cluster perintah.

contoh Contoh: Primer On-Demand, inti On-Demand dengan tipe instans tunggal, Default VPC
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, Spot core dengan tipe instance tunggal, default VPC
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: Primer On-Demand, inti campuran dengan tipe instans tunggal, subnet tunggal EC2
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: Primer On-Demand, 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: Primer On-Demand, inti campuran, dan tugas 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 utama, tidak ada inti atau tugas, EBS konfigurasi Amazon, default VPC
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 kustomAMIs, 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 kustom AMIs
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 JSON konfigurasi

Anda dapat mengonfigurasi parameter armada instance dalam sebuah JSON file, dan kemudian mereferensikan JSON file tersebut sebagai satu-satunya parameter untuk armada instance. Misalnya, perintah berikut mereferensikan file JSON konfigurasi,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

Bagian my-fleet-config.json file 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 in. 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 list-instance-fleets perintah untuk mengambil armada IDs instance.

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 EMRAPIReferensi 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" } ] }