Saat beban kerja kluster berfluktuasi, mengubah jumlah node secara manual bersifat lambat dan rentan kesalahan. Fitur Auto Scaling di E-MapReduce (EMR) secara otomatis menambah atau menghapus node task berdasarkan aturan yang Anda tentukan—menjaga pekerjaan tetap berjalan lancar selama puncak beban dan mengurangi biaya selama jam sepi.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster DataLake, Dataflow, online analytical processing (OLAP), DataServing, atau kluster kustom. Untuk informasi lebih lanjut, lihat Buat kluster.
Kelompok node task yang berisi instans pay-as-you-go atau instans preemptible. Untuk informasi lebih lanjut, lihat Buat kelompok node.
Langkah 1: Pilih mode pemicu
Pilih mode pemicu berdasarkan karakteristik beban kerja Anda:
| Skenario | Mode pemicu |
|---|---|
| Beban kerja berfluktuasi sesuai jadwal yang dapat diprediksi, atau Anda memerlukan jumlah node tetap dalam periode tertentu. | Penskalaan berbasis waktu |
| Beban kerja berfluktuasi tanpa pola yang dapat diprediksi, dan jumlah node yang dibutuhkan berubah sesuai beban kerja aktual. | Penskalaan berbasis beban |
| Beban kerja memiliki pola yang dapat diprediksi sekaligus fluktuasi dinamis. | Penskalaan berbasis waktu dikombinasikan dengan penskalaan berbasis beban |
Langkah 2: Konfigurasikan aturan auto scaling
Jika beberapa aturan Auto Scaling dikonfigurasi dan kondisinya terpenuhi secara bersamaan, sistem menerapkan urutan eksekusi sebagai berikut:
Aturan scale-out memiliki prioritas lebih tinggi daripada aturan scale-in.
Aturan berbasis waktu dan berbasis beban dieksekusi berdasarkan urutan pemicunya.
Aturan berbasis beban dipicu berdasarkan waktu evaluasi metrik beban kluster.
Aturan berbasis beban dengan metrik beban kluster yang sama dipicu sesuai urutan konfigurasinya.
Penskalaan berbasis waktu
Konfigurasikan aturan scale-out berbasis waktu untuk dijalankan berulang kali atau sekali pada waktu tertentu saat beban kerja diperkirakan meningkat. Pasangkan dengan aturan scale-in untuk mengurangi jumlah node selama jam sepi.
Untuk aturan yang berulang, atur Rule Expiration Time agar penskalaan berhenti dipicu setelah tanggal tertentu.
Contoh: Jika beban kerja meningkat pukul 22.00 dan menurun pukul 04.00 setiap hari, konfigurasikan aturan scale-out berulang pukul 22.00 dan aturan scale-in berulang pukul 04.00.
Untuk detail parameter, lihat Konfigurasikan aturan Auto Scaling kustom.
Penskalaan berbasis beban
Penskalaan berbasis beban memantau metrik beban kluster dan memicu penskalaan saat ambang batas dilampaui. Setelah dikonfigurasi, klik OK, lalu klik Save and Apply di panel Configure Auto Scaling.

1. Pilih metrik beban kluster
Pada subtab Metric Monitoring di tab Monitoring, pilih YARN-HOME dari daftar drop-down Dashboard. Amati bagaimana metrik berubah pada periode dan beban kerja bisnis yang berbeda.

Pilih metrik yang nilainya berbanding terbalik dengan kapasitas kluster—setelah aktivitas penskalaan, nilai metrik tersebut seharusnya menurun seiring peningkatan jumlah instans.
Metrik YARN berikut direkomendasikan:
| Metric | Service | Description |
|---|---|---|
| yarn_resourcemanager_queue_AvailableMBPercentage | YARN | Persentase memori tersedia terhadap total memori di antrian root |
| yarn_resourcemanager_queue_AvailableVCores | YARN | Jumlah vCPU tersedia di antrian root |
| yarn_resourcemanager_queue_AvailableMB | YARN | Memori tersedia di antrian root (MB) |
| yarn_resourcemanager_queue_AppsPending | YARN | Jumlah task yang tertunda di antrian root |
| yarn_resourcemanager_queue_PendingContainers | YARN | Jumlah kontainer yang menunggu alokasi di antrian root |
| yarn_resourcemanager_queue_AvailableVCoresPercentage | YARN | Persentase vCPU tersedia di antrian root |
Untuk aturan berbasis beban pertama Anda, gunakan metrik yang terkait dengan task tertunda (seperti yarn_resourcemanager_queue_AppsPending) untuk aturan scale-out dan metrik yang terkait dengan sumber daya tersedia untuk aturan scale-in.
Contoh: Atur aturan scale-out agar dipicu ketika yarn_resourcemanager_queue_AppsPending lebih besar dari atau sama dengan 1 selama 60 detik. Saat kondisi terpenuhi, satu node ditambahkan dan jumlah task tertunda berkurang.
2. Konfigurasikan parameter aturan
| Parameter | Description | Recommendation |
|---|---|---|
| Trigger conditions | Satu atau beberapa ambang batas metrik dengan logika AND atau OR | Gunakan beberapa kondisi dengan logika AND untuk mengurangi pemicuan palsu |
| Statistical Period | Jendela waktu untuk mengevaluasi nilai metrik | Atur ke 1 menit. Nilai yang lebih besar dapat memicu penskalaan berdasarkan data lama. |
| Cooldown Time | Waktu minimum antar aktivitas penskalaan | Atur ke 100–300 detik untuk aturan scale-out. Penambahan node membutuhkan rata-rata 1,55 menit (atau 1,83 menit untuk 100 node), sehingga cooldown memungkinkan node baru stabil sebelum evaluasi ulang. |
| Number of nodes | Jumlah instans yang ditambahkan atau dihapus per aktivitas | Perkirakan berdasarkan kapasitas node yang ada dan pertumbuhan beban kerja yang diharapkan |
| Effective time period | Rentang jam dalam sehari saat aturan aktif | Konfigurasikan aturan berbeda untuk periode waktu yang berbeda sesuai kebutuhan |
3. Tetapkan batas kelompok node
Bagian Limits on Node Quantity of Current Node Group menetapkan batas jumlah node:
Maximum Number of Instances — batas atas untuk kelompok node, mencegah scale-out tanpa batas.
Minimum Number of Instances — batas bawah; jika instans dilepas secara tidak terduga, sistem akan menambahkannya kembali hingga mencapai jumlah minimum ini.
4. Lakukan penyesuaian setelah penerapan awal
Setelah aturan aktif, tinjau tren metrik dan catatan aktivitas penskalaan untuk menyesuaikan konfigurasi:
Terlalu banyak aktivitas penskalaan, dengan node yang ditambahkan menganggur lalu dihapus — tambahkan lebih banyak kondisi metrik menggunakan operator AND, atau perbesar nilai periode cooldown.
Scale-out terlalu lambat atau tidak mencukupi — tingkatkan jumlah instans yang ditambahkan per aktivitas scale-out.
Langkah berikutnya
Konfigurasikan aturan Auto Scaling kustom — tentukan parameter aturan lanjutan dan tinjau semua metrik beban kluster yang tersedia.