Fitur auto scaling merupakan kemampuan inti yang disediakan oleh platform data besar berbasis cloud E-MapReduce (EMR). Setelah Anda mengonfigurasi aturan auto scaling, sistem akan menambah atau menghapus node dalam kluster EMR sesuai kebutuhan bisnis Anda. Hal ini membantu memenuhi kebutuhan workload bisnis yang fluktuatif sekaligus mengurangi biaya. Topik ini menjelaskan cara mengonfigurasi aturan auto scaling yang sesuai untuk kluster EMR berdasarkan kebutuhan bisnis Anda.
Prasyarat
-
Anda telah membuat kluster DataLake, Dataflow, OLAP, DataServing, atau kluster kustom. Untuk informasi selengkapnya, lihat Create a cluster.
-
Kluster berisi kelompok node task yang menggunakan instans pay-as-you-go atau preemptible. Untuk informasi selengkapnya, lihat Add a node group.
Langkah 1: Pilih mode pemicu
Pilih mode pemicu berdasarkan kasus penggunaan Anda.
|
Use case |
Trigger mode |
|
Workload Anda menunjukkan pola berbasis waktu yang dapat diprediksi atau memerlukan jumlah node yang stabil selama periode tertentu. |
Gunakan time-based scaling untuk segera memenuhi kebutuhan bisnis Anda. |
|
Workload Anda berfluktuasi tanpa pola waktu yang jelas dan berubah berdasarkan volume bisnis. |
Gunakan load-based scaling. Mode ini memantau metrik untuk mendeteksi fluktuasi workload dan memicu penskalaan berdasarkan aturan Anda, sehingga memastikan resource yang cukup untuk job Anda. |
|
Workload Anda menunjukkan pola berbasis waktu yang dapat diprediksi sekaligus fluktuasi berbasis beban. |
Anda dapat menggabungkan time-based scaling dan load-based scaling untuk mengonfigurasi aturan penskalaan. |
Langkah 2: Konfigurasikan aturan auto scaling
Jika beberapa aturan auto scaling memenuhi kondisinya secara bersamaan, sistem akan mengeksekusinya sesuai prioritas berikut:
-
Aturan scale-out memiliki prioritas lebih tinggi daripada aturan scale-in.
-
Aturan berbasis waktu dan berbasis beban dieksekusi sesuai urutan pemicunya.
-
Untuk penskalaan berbasis beban, aturan diprioritaskan berdasarkan timestamp metrik yang memicu.
-
Untuk aturan penskalaan berbasis beban yang menggunakan metrik pemicu yang sama, aturan tersebut dipicu sesuai urutan pembuatannya.
Time-based scaling
Anda dapat mengonfigurasi aturan scale-out berbasis waktu yang dijalankan berulang kali atau hanya sekali pada waktu ketika volume bisnis Anda diperkirakan meningkat. Anda juga dapat mengonfigurasi aturan scale-in untuk mengurangi jumlah node selama jam sepi. Jika aturan time-based scaling yang Anda konfigurasi dijalankan secara berulang, Anda dapat mengatur parameter Rule Expiration Time untuk menentukan waktu kedaluwarsa aturan tersebut. Setelah aturan time-based scaling kedaluwarsa, tidak ada aktivitas penskalaan yang dipicu.
Sebagai contoh, workload bisnis Anda meningkat pada pukul 22.00 dan menurun pada pukul 04.00 setiap hari. Dalam hal ini, Anda dapat mengonfigurasi aturan scale-out berbasis waktu yang dijalankan berulang setiap hari pukul 22.00 dan aturan scale-in berbasis waktu yang dijalankan berulang setiap hari pukul 04.00.
Untuk informasi selengkapnya mengenai parameter dan metrik beban kluster, lihat Create custom auto scaling policies.
Load-based scaling
Secara default, EMR merekomendasikan metrik umum untuk penskalaan. Anda harus mengonfigurasi ambang batas spesifik berdasarkan tren metrik kluster Anda. Setelah menetapkan nilai-nilai tersebut, klik OK, lalu klik Save and Apply. Aturan tersebut akan secara otomatis dipicu sebagai respons terhadap perubahan workload.
Ikuti langkah-langkah berikut untuk mengonfigurasi aturan penskalaan yang sesuai dengan kebutuhan kluster Anda.
-
Pilih metrik yang sesuai.
Pada tab Monitoring, buka halaman Metric Monitoring. Dari daftar drop-down Dashboard, pilih YARN-HOME. Amati bagaimana metrik berubah seiring waktu dengan workload Anda untuk memilih metrik yang paling tepat.

Nilai metrik tersebut harus berbanding terbalik dengan perubahan kapasitas. Setelah aktivitas penskalaan terjadi, nilai metrik akan menurun saat jumlah instans berubah.
Sebagai contoh, Anda dapat mengonfigurasi aturan scale-out yang menambah satu node jika nilai rata-rata
yarn_resourcemanager_queue_AppsPendinglebih besar dari atau sama dengan 1 selama satu kali kejadian berturut-turut. Setelah aktivitas scale-out ini, jumlah aplikasi yang tertunda dalam antrian seharusnya berkurang.Tabel berikut mencantumkan metrik yang direkomendasikan.
Metric
Service
Description
yarn_resourcemanager_queue_AvailableMBPercentage
YARN
Persentase resource memori yang tersedia dalam root queue.
yarn_resourcemanager_queue_AvailableVCores
YARN
Jumlah vCPU yang tersedia untuk dialokasikan dalam root queue.
yarn_resourcemanager_queue_AvailableMB
YARN
Jumlah memori yang tersedia untuk dialokasikan dalam root queue. Satuan: MB.
yarn_resourcemanager_queue_AppsPending
YARN
Jumlah aplikasi yang tertunda dalam root queue.
yarn_resourcemanager_queue_PendingContainers
YARN
Jumlah container yang tertunda alokasinya dalam root queue.
yarn_resourcemanager_queue_AvailableVCoresPercentage
YARN
Persentase resource vCPU yang tersedia dalam root queue.
-
Konfigurasikan aturan penskalaan yang sesuai.
-
Saat mengonfigurasi aturan untuk pertama kali, titik awal yang baik adalah menggunakan metrik terkait pending untuk aturan scale-out dan metrik terkait available untuk aturan scale-in.
-
Dalam satu aturan, Anda dapat menentukan beberapa kondisi berbasis metrik dan menentukan logika AND/OR di antara kondisi tersebut untuk kontrol yang lebih granular terhadap pemicu penskalaan.
-
Untuk mencegah pemborosan resource akibat penskalaan yang terlalu sering, atur waktu pendinginan untuk aturan scale-in Anda. Selama waktu pendinginan, sistem tidak akan memicu aktivitas penskalaan baru meskipun kondisinya terpenuhi.
Rata-rata waktu penambahan node memerlukan 1,55 menit, sedangkan rata-rata waktu penambahan 100 node hanya memerlukan 1,83 menit. Anda dapat mengatur waktu pendinginan untuk aturan scale-out pada rentang 100 hingga 300 detik. Dengan demikian, setelah node baru digunakan, Anda dapat memeriksa apakah nilai metrik beban kluster yang dikonfigurasi menurun dan menentukan apakah diperlukan aktivitas scale-out tambahan. Hal ini membantu mencegah pemborosan resource.
-
Untuk merespons perubahan metrik lebih cepat, kami menyarankan agar Anda mengatur Statistical Period menjadi 1 menit. Periode statistik yang terlalu panjang dapat memicu aktivitas penskalaan berdasarkan data historis yang sudah usang, sehingga menyebabkan pemborosan yang tidak perlu.
-
Konfigurasikan jumlah instans yang akan ditambah atau dihapus berdasarkan kapasitas pemrosesan node saat ini dan perkiraan pertumbuhan workload Anda. Perkirakan jumlah node yang diperlukan untuk mengembalikan metrik ke rentang yang diinginkan.
-
Tentukan batasan waktu (rentang waktu dalam sehari ketika aturan aktif) untuk menggabungkan berbagai aturan penskalaan dan menerapkan kondisi penskalaan berbeda pada periode waktu yang berbeda.
-
-
Tentukan ukuran minimum dan maksimum.
Parameter Limits on Node Quantity of Current Node Group menentukan batasan jumlah node dalam kelompok node saat ini. Parameter Maximum Number of Instances menentukan batas atas jumlah node dalam kelompok node saat ini. Hal ini mencegah kelompok node Anda mengalami scale-out tanpa batas. Parameter Minimum Number of Instances menentukan batas bawah jumlah node yang diperlukan untuk memproses bisnis Anda. Jika instans Anda dilepas karena faktor tak terduga, sistem akan menambahkan instans untuk memenuhi jumlah minimum tersebut.
-
Sesuaikan aturan tersebut.
Setelah mengonfigurasi aturan, pantau metrik dan riwayat aktivitas penskalaan Anda selama periode tertentu untuk menyesuaikan parameter sesuai kebutuhan.
-
Jika aktivitas penskalaan terlalu sering dan instans yang baru ditambahkan menganggur atau segera di-scale-in, pertimbangkan untuk membuat kondisi pemicu lebih ketat dengan menggunakan operator AND, atau perpanjang Cooldown Time aturan tersebut.
-
Jika diperlukan beberapa event scale-out untuk memproses satu job, atau jika penskalaan tidak cukup cepat mengikuti workload Anda, pertimbangkan untuk menambah jumlah instans yang ditambahkan dalam setiap aktivitas penskalaan.
-