Jika beban kerja bisnis Anda berfluktuasi, kami sarankan mengaktifkan penyesuaian skala otomatis untuk kluster E-MapReduce (EMR) dan mengonfigurasi aturan penyesuaian skala otomatis untuk menambah atau mengurangi node tugas sesuai kebutuhan. Penyesuaian skala otomatis membantu mengurangi biaya sekaligus memastikan sumber daya komputasi yang cukup untuk pekerjaan Anda. Topik ini menjelaskan cara mengonfigurasi aturan penyesuaian skala otomatis kustom di konsol EMR.
Prasyarat
Kluster DataLake, Dataflow, OLAP, DataServing, atau kluster kustom telah dibuat. Untuk informasi lebih lanjut, lihat Buat Kluster.
Grup node tugas yang berisi instans bayar sesuai penggunaan atau instans preemptible telah dibuat dalam kluster. Untuk informasi selengkapnya, lihat Buat grup node.
Batasan
Untuk mencegah kegagalan penskalaan otomatis akibat keterbatasan ketersediaan instans Elastic Compute Service (ECS), Anda dapat memilih hingga 10 tipe instans ECS saat menambahkan grup node. Node akan dibuat berdasarkan urutan tipe instans dalam daftar. Secara default, tipe instans yang dipilih pertama kali digunakan terlebih dahulu saat kluster melakukan skala keluar. Jika suatu tipe instans tidak tersedia, sistem akan menggunakan tipe instans berikutnya. Tipe instans yang digunakan untuk membuat node bergantung pada stok yang tersedia.
Hanya kluster tempat layanan YARN diterapkan yang mendukung aturan penyesuaian skala berbasis beban.
Peringatan
Anda dapat menambahkan aturan penyesuaian skala otomatis ke grup node yang memenuhi persyaratan. Ketika aturan dipicu, grup node secara otomatis diperbesar atau diperkecil berdasarkan konfigurasi. Jika tidak ada aturan yang dikonfigurasi, aktivitas penyesuaian skala otomatis tidak dipicu.
Sistem mencari jenis instance yang sesuai dengan spesifikasi yang Anda tentukan dan menampilkannya di bagian Jenis Instance. Anda harus memilih satu atau lebih jenis instance agar kluster dapat disesuaikan berdasarkan pilihan tersebut.
Jika beberapa aturan penyesuaian skala dikonfigurasi dan kondisi terpenuhi pada waktu bersamaan, sistem memicu dan mengeksekusi aturan berdasarkan urutan berikut:
Aturan perluasan skala memiliki prioritas lebih tinggi daripada aturan pengurangan skala.
Aturan penyesuaian skala berbasis waktu dan beban dieksekusi berdasarkan urutan pemicuan.
Aturan penyesuaian skala berbasis beban dipicu berdasarkan waktu ketika metrik beban kluster tercapai.
Aturan penyesuaian skala berbasis beban dengan metrik beban kluster yang sama dipicu berdasarkan urutan konfigurasi.
Prosedur
Metode 1: Tambahkan aturan penyesuaian skala kustom untuk kluster yang ada
Pergi ke tab Penyesuaian Skala Otomatis.
Di bilah navigasi atas, pilih wilayah dan grup sumber daya sesuai kebutuhan bisnis Anda.
Di halaman EMR on ECS, temukan kluster yang diinginkan dan klik nama kluster di kolom ID/Nama Kluster.
Di halaman yang muncul, klik tab Auto Scaling.
Konfigurasikan aturan penyesuaian skala otomatis.
Di tab Configure Auto Scaling pada bagian Configure Auto Scaling Rule, klik Custom Auto Scaling Rule. Di pesan Ubah Aturan Penskalaan Otomatis, klik Reconfigure. Temukan grup node yang diinginkan lalu klik Edit di kolom Actions.
Di panel Configure Auto Scaling, atur parameter berikut:
Limits On Node Quantity Of Current Node Group: menentukan rentang jumlah node dalam grup node saat ini. Parameter ini menetapkan batas atas dan bawah jumlah node dalam grup node saat grup tersebut melakukan skala-masuk atau skala keluar secara otomatis berdasarkan aturan penskalaan otomatis. Untuk mengubah jumlah maksimum dan minimum node dalam grup node, klik Modify Limit.
Maximum Number Of Instances: menentukan batas atas jumlah node dalam grup node saat ini. Grup node tidak dapat lagi melakukan skala keluar ketika jumlah node mencapai batas atas tersebut.
Minimum Number Of Instances: menentukan batas bawah jumlah node dalam grup node saat ini. Grup node tidak dapat lagi melakukan skala-masuk ketika jumlah node mencapai batas bawah tersebut.
Trigger Rule: Menampilkan aturan penyesuaian skala yang dikonfigurasikan untuk grup node saat ini. Anda juga dapat menambahkan lebih banyak aturan penyesuaian skala untuk grup node.
Penyesuaian skala berbasis waktu
Jika beban komputasi kluster berfluktuasi secara teratur, Anda dapat menambah atau menghapus jumlah tertentu node tugas pada titik waktu tetap setiap hari, setiap minggu, atau setiap bulan untuk melengkapi atau menghemat sumber daya komputasi. Hal ini memastikan pekerjaan dapat diselesaikan dengan biaya rendah. Aturan penskalaan otomatis dibagi menjadi aturan skala keluar dan aturan skala-masuk.
PentingUntuk mencegah konflik potensial dan memastikan operasi penyesuaian skala berjalan lancar, jangan atur waktu eksekusi aturan perluasan dan pengurangan skala pada titik waktu yang sama.
Tabel berikut menjelaskan parameter untuk aturan perluasan skala.
Parameter
Deskripsi
Scale Out Type
Penskalaan terjadwal.
Rule Name
Nama aturan perluasan skala. Nama aturan penyesuaian skala harus unik dalam sebuah kluster.
Frequency
Execute Repeatedly: Penyesuaian skala dilakukan pada titik waktu tertentu setiap hari, setiap minggu, atau setiap bulan.
Execute Only Once: Auto Scaling dilakukan hanya sekali pada waktu tertentu.
Execution Time
Titik waktu spesifik saat aturan perluasan skala dieksekusi.
Rule Expiration Time
Waktu kadaluarsa aturan perluasan skala. Setelah aturan perluasan skala kadaluarsa, tidak ada aktivitas perluasan skala yang dipicu. Parameter ini tersedia hanya jika Anda menyetel parameter Frequency ke Execute Repeatedly.
Retry Time Range
Interval ulang. Penyesuaian skala mungkin gagal pada waktu yang ditentukan karena berbagai alasan. Jika interval ulang ditentukan, sistem akan mencoba penyesuaian skala setiap 30 detik selama interval ulang yang ditentukan oleh parameter ini sampai penyesuaian skala dilakukan. Nilai valid: 0 hingga 3600. Unit: detik.
Sebagai contoh, operasi penskalaan otomatis A perlu dilakukan dalam periode waktu tertentu. Jika operasi penskalaan otomatis B masih berlangsung atau sedang dalam masa pendinginan selama periode tersebut, operasi A tidak dapat dilakukan. Dalam kasus ini, sistem akan mencoba melakukan operasi A setiap 30 detik dalam rentang waktu percobaan ulang yang Anda tentukan. Jika kondisi yang diperlukan terpenuhi, kluster segera melakukan penskalaan otomatis.
Nodes For Each Scale Out
Jumlah node yang ditambahkan ke grup node setiap kali aturan perluasan skala dipicu.
Best-effort Delivery
Kami sarankan Anda menghidupkan saklar ini. Setelah Anda menghidupkan saklar ini, sistem akan mengirimkan semua node yang berhasil dibuat dengan cara terbaik usaha untuk memastikan kelangsungan bisnis Anda.
Sebagai contoh, Anda mengonfigurasi aturan perluasan skala untuk menambahkan 100 node pada pukul 00:00 setiap hari, dan hanya 90 node yang ditambahkan. Jika Anda tidak menghidupkan saklar Pengiriman Terbaik Usaha, perluasan skala gagal. Jika Anda menghidupkan saklar, 90 node dikirimkan.
Penyesuaian skala berbasis beban
CatatanHanya kluster tempat layanan YARN diterapkan yang mendukung aturan penyesuaian skala berbasis beban.
Anda dapat menambahkan aturan penyesuaian skala berbasis beban untuk grup node tugas dalam kluster tempat fluktuasi beban komputasi data besar tidak dapat diprediksi dengan akurat. Aturan penyesuaian skala dibagi menjadi aturan perluasan skala dan aturan pengurangan skala. Tabel berikut menjelaskan parameter untuk aturan perluasan skala.
Parameter
Deskripsi
Scale Out Type
Skala keluar berdasarkan beban.
Rule Name
Nama aturan perluasan skala. Nama aturan penyesuaian skala harus unik dalam sebuah kluster.
Load Metric-based Trigger Conditions
Kondisi yang harus dipenuhi untuk memicu aturan perluasan skala. Anda harus memilih setidaknya satu metrik beban yang ditentukan sistem. Untuk memilih beberapa metrik beban yang ditentukan sistem, klik Add Metric. Anda harus mengonfigurasi parameter berikut:
Metrik beban: Pilih metrik beban YARN yang ditentukan sistem. Untuk informasi tentang pemetaan antara metrik penyesuaian skala EMR dan metrik beban YARN, lihat Deskripsi metrik penyesuaian skala EMR yang cocok dengan metrik beban YARN.
CatatanMetrik beban yang ditentukan sistem bervariasi berdasarkan jenis kluster. Anda dapat melihat metrik beban yang didukung yang ditentukan sistem di konsol EMR.
Metode statistik: aturan yang digunakan untuk menentukan ambang batas untuk setiap metrik beban. Aturan perluasan skala dipicu sekali jika nilai dimensi agregasi yang ditentukan (rata-rata, maksimum, atau minimum) untuk setiap metrik beban yang dipilih mencapai ambang batas dalam periode statistik.
Multi-metric Relationship
Hubungan di antara metrik yang digunakan untuk memicu aturan perluasan skala. Nilai valid: All Metrics Meet the Conditions dan Any Metric Meets the Condition.
Statistical Period
Periode statistik untuk mengukur apakah nilai dimensi agregasi yang ditentukan (rata-rata, maksimum, atau minimum) untuk setiap metrik beban yang dipilih mencapai ambang batas. Data dikumpulkan, dirangkum, dan dibandingkan berdasarkan periode statistik yang ditentukan. Semakin pendek periode statistik, semakin sering aturan perluasan skala kemungkinan akan dipicu. Tentukan periode statistik berdasarkan kebutuhan bisnis Anda.
Repetitions That Trigger Scale Out
Berdasarkan metode agregasi, Auto Scaling mencatat setiap kejadian saat nilai metrik beban melebihi ambang batas. Aturan penskalaan yang sesuai hanya dipicu setelah mencapai jumlah kejadian tertentu.
Nodes For Each Scale Out
Jumlah node yang ditambahkan ke grup node setiap kali aturan perluasan skala dipicu.
Best-effort Delivery
Setelah Anda menghidupkan saklar ini, sistem akan mengirimkan semua node yang berhasil dibuat dengan cara terbaik usaha. Penyesuaian skala berbasis beban dipengaruhi oleh metrik. Anda dapat menentukan apakah akan menghidupkan saklar berdasarkan kebutuhan bisnis Anda.
Cooldown Time
Interval antara dua aktivitas perluasan skala. Selama waktu cooldown, aturan perluasan skala tidak dipicu meskipun kondisi perluasan skala terpenuhi. Aktivitas perluasan skala dilakukan setelah waktu cooldown berakhir dan kondisi perluasan skala terpenuhi lagi.
Setelah grup node diperluas dan mencapai keadaan yang diharapkan, waktu cooldown menjaga metrik beban kluster yang memicu aktivitas perluasan skala berikutnya dalam keadaan stabil.
Effective Time Period
Rentang waktu di mana aturan perluasan skala berlaku. Parameter ini opsional. Secara default, aturan perluasan skala tersedia 24 jam sehari. Aktivitas perluasan skala hanya dipicu dalam rentang waktu yang ditentukan oleh parameter ini.
Klik Save And Apply.
Aktivitas penambahan skala dipicu untuk grup node ketika kondisi penambahan skala terpenuhi.
Metode 2: Tambahkan aturan penyesuaian skala otomatis kustom saat Anda membuat kluster
Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya sesuai kebutuhan bisnis Anda.
Klik Create Cluster. Untuk informasi lebih lanjut, lihat Buat Kluster.
CatatanAnda harus menambahkan grup node tugas bayar sesuai pemakaian sebelum dapat mengonfigurasi aturan penyesuaian skala otomatis kustom.
Konfigurasikan parameter Cluster Scaling.
Klik Custom Auto Scaling Rule. Temukan grup node yang diinginkan lalu klik Edit di kolom Actions.
Di panel Configure Auto Scaling, konfigurasikan parameter. Untuk informasi selengkapnya, lihat Konfigurasi aturan penskalaan otomatis.
Klik Save And Apply.
Konfirmasi pesanan.
Setelah kluster dibuat, aktivitas penyesuaian skala dipicu untuk grup node ketika kondisi tertentu terpenuhi.
Metode 3: Gunakan SDK untuk menambahkan aturan penyesuaian skala otomatis kustom
Saat memanggil operasi API tertentu untuk membuat kluster atau membuat grup node tugas, Anda dapat mengonfigurasi aturan penyesuaian skala otomatis kustom untuk grup node tugas agar sistem secara otomatis mengelola node. Untuk informasi lebih lanjut, lihat CreateCluster dan CreateNodeGroup. Anda juga dapat mengonfigurasi aturan penyesuaian skala otomatis kustom untuk grup node tugas yang sudah ada. Untuk informasi lebih lanjut, lihat PutAutoScalingPolicy.
Kode Java berikut menunjukkan cara mengonfigurasi aturan perluasan skala berbasis beban.
Kami sarankan menggunakan Token Layanan Keamanan (STS) yang memberikan keamanan lebih tinggi untuk menginisialisasi klien Kredensial. Untuk informasi lebih lanjut, lihat Kelola Kredensial Akses.
// File ini dibuat secara otomatis, jangan mengeditnya. Terima kasih.
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* deskripsiDeskripsi metrik penskalaan otomatis EMR yang sesuai dengan metrik beban YARN
Untuk metrik penskalaan otomatis yang terkait antrian, parameter queue_name menentukan nama antrian. Nilai default adalah root. Anda dapat menentukan antrian kustom.
Untuk metrik penskalaan otomatis yang terkait partisi, parameter partition_name menentukan nama partisi. Parameter ini tidak boleh kosong.
Metrik penskalaan otomatis EMR | Layanan | Deskripsi |
yarn_resourcemanager_queue_AvailableVCores | YARN | Jumlah core CPU virtual yang tersedia untuk antrian yang ditentukan. |
yarn_resourcemanager_queue_PendingVCores | YARN | Jumlah core CPU virtual yang tertunda untuk antrian yang ditentukan. |
yarn_resourcemanager_queue_AllocatedVCores | YARN | Jumlah core CPU virtual yang dialokasikan untuk antrian yang ditentukan. |
yarn_resourcemanager_queue_ReservedVCores | YARN | Jumlah core CPU virtual yang dicadangkan untuk antrian yang ditentukan. |
yarn_resourcemanager_queue_AvailableMB | YARN | Jumlah memori yang tersedia untuk antrian yang ditentukan. |
yarn_resourcemanager_queue_PendingMB | YARN | Jumlah memori yang tertunda untuk antrian yang ditentukan. |
yarn_resourcemanager_queue_AllocatedMB | YARN | Jumlah memori yang dialokasikan untuk antrian yang ditentukan. |
yarn_resourcemanager_queue_ReservedMB | YARN | Jumlah memori yang dicadangkan untuk antrian yang ditentukan. |
yarn_resourcemanager_queue_AppsRunning | YARN | Jumlah pekerjaan yang sedang berjalan di antrian yang ditentukan. |
yarn_resourcemanager_queue_AppsPending | YARN | Jumlah pekerjaan yang ditangguhkan di antrian yang ditentukan. |
yarn_resourcemanager_queue_AppsKilled | YARN | Jumlah pekerjaan yang dihentikan di antrian yang ditentukan. |
yarn_resourcemanager_queue_AppsFailed | YARN | Jumlah pekerjaan yang gagal di antrian yang ditentukan. |
yarn_resourcemanager_queue_AppsCompleted | YARN | Jumlah pekerjaan yang selesai di antrian yang ditentukan. |
yarn_resourcemanager_queue_AppsSubmitted | YARN | Jumlah pekerjaan yang diajukan di antrian yang ditentukan. |
yarn_resourcemanager_queue_AllocatedContainers | YARN | Jumlah kontainer yang dialokasikan di antrian yang ditentukan. |
yarn_resourcemanager_queue_PendingContainers | YARN | Jumlah kontainer yang tertunda di antrian yang ditentukan. |
yarn_resourcemanager_queue_ReservedContainers | YARN | Jumlah kontainer yang dicadangkan di antrian yang ditentukan. |
yarn_resourcemanager_queue_AvailableMBPercentage | YARN | Persentase sumber daya memori yang tersedia di antrian yang ditentukan. Catatan Metrik ini tersedia untuk kluster EMR versi V3.43.0, V5.9.0, dan versi minor setelah V3.43.0 atau V5.9.0. |
yarn_resourcemanager_queue_PendingContainersRatio | YARN | Rasio kontainer tertunda terhadap kontainer yang dialokasikan di antrian yang ditentukan. Catatan Metrik ini tersedia untuk kluster EMR versi V3.43.0, V5.9.0, dan versi minor setelah V3.43.0 atau V5.9.0. |
yarn_resourcemanager_queue_AvailableVCoresPercentage | YARN | Persentase core CPU yang tersedia di antrian yang ditentukan. Catatan Metrik ini tersedia untuk kluster EMR versi V3.43.0, V5.9.0, dan versi minor setelah V3.43.0 atau V5.9.0. |
yarn_cluster_numContainersByPartition | YARN | Jumlah kontainer untuk partisi tertentu. Parameter partition_name menentukan nama partisi. Catatan Metrik ini tersedia untuk kluster EMR versi V3.44.0, V5.10.0, dan versi minor setelah V3.44.0 atau V5.10.0. |
yarn_cluster_usedMemoryMBByPartition | YARN | Jumlah memori yang digunakan untuk partisi yang ditentukan. Parameter partition_name menentukan nama partisi. Catatan Metrik ini tersedia untuk kluster EMR versi V3.44.0, V5.10.0, dan versi minor setelah V3.44.0 atau V5.10.0. |
yarn_cluster_availMemoryMBByPartition | YARN | Jumlah memori yang tersedia untuk partisi yang ditentukan. Parameter partition_name menentukan nama partisi. Catatan Metrik ini tersedia untuk kluster EMR versi V3.44.0, V5.10.0, dan versi minor setelah V3.44.0 atau V5.10.0. |
yarn_cluster_usedVirtualCoresByPartition | YARN | Jumlah core CPU yang digunakan untuk partisi yang ditentukan. Parameter partition_name menentukan nama partisi. Catatan Metrik ini tersedia untuk kluster EMR versi V3.44.0, V5.10.0, dan versi minor setelah V3.44.0 atau V5.10.0. |
yarn_cluster_availableVirtualCoresByPartition | YARN | Jumlah core CPU yang tersedia untuk partisi yang ditentukan. Parameter partition_name menentukan nama partisi. Catatan Metrik ini tersedia untuk kluster EMR versi V3.44.0, V5.10.0, dan versi minor setelah V3.44.0 atau V5.10.0. |