Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penskalaan Tingkat Lanjut untuk Amazon EMR
Dimulai dengan Amazon EMR di EC2 versi 7.0, Anda dapat memanfaatkan Advanced Scaling untuk mengontrol pemanfaatan sumber daya cluster Anda. Advanced Scaling memperkenalkan skala kinerja penggunaan untuk menyesuaikan tingkat pemanfaatan sumber daya dan kinerja sesuai dengan kebutuhan bisnis Anda. Nilai yang Anda tetapkan menentukan apakah cluster Anda lebih ditimbang untuk konservasi sumber daya atau peningkatan untuk menangani beban kerja sensitif perjanjian tingkat layanan (SLA), di mana penyelesaian cepat sangat penting. Saat nilai penskalaan disesuaikan, penskalaan terkelola menafsirkan maksud Anda dan menskalakan secara cerdas untuk mengoptimalkan sumber daya. Untuk informasi selengkapnya tentang penskalaan terkelola, lihat Meng onfigurasi penskalaan terkelola untuk Amazon EMR.
Pengaturan penskalaan lanjutan
Nilai yang Anda tetapkan untuk Advanced Scaling mengoptimalkan cluster Anda sesuai kebutuhan Anda. Nilai berkisar dari 1 - 100. Nilai yang mungkin adalah 1, 25, 50, 75 dan 100. Jika Anda mengatur indeks ke nilai-nilai selain ini, itu menghasilkan kesalahan validasi.
Peta nilai penskalaan ke strategi pemanfaatan sumber daya. Daftar berikut mendefinisikan beberapa di antaranya:
Pemanfaatan dioptimalkan [1] — Pengaturan ini mencegah penyediaan sumber daya yang berlebihan. Gunakan nilai rendah ketika Anda ingin menjaga biaya tetap rendah dan memprioritaskan pemanfaatan sumber daya yang efisien. Ini menyebabkan cluster meningkat kurang agresif. Ini berfungsi dengan baik untuk kasus penggunaan ketika ada lonjakan beban kerja yang terjadi secara teratur dan Anda tidak ingin sumber daya meningkat terlalu cepat.
Seimbang [50] — Ini menyeimbangkan pemanfaatan sumber daya dan kinerja pekerjaan. Pengaturan ini cocok untuk beban kerja yang stabil di mana sebagian besar tahapan memiliki runtime yang stabil. Ini juga cocok untuk beban kerja dengan campuran tahap pendek dan jangka panjang. Sebaiknya mulai dengan pengaturan ini jika Anda tidak yakin mana yang harus dipilih.
Kinerja dioptimalkan [100] — Strategi ini memprioritaskan kinerja. Cluster meningkatkan skala secara agresif untuk memastikan bahwa pekerjaan selesai dengan cepat dan memenuhi target kinerja. Kinerja yang dioptimalkan cocok untuk beban kerja sensitif perjanjian tingkat layanan (SLA) di mana waktu berjalan cepat sangat penting.
catatan
Nilai perantara yang tersedia memberikan jalan tengah antara strategi untuk menyempurnakan perilaku Penskalaan Tingkat Lanjut cluster Anda.
Manfaat Penskalaan Tingkat Lanjut
Karena Anda memiliki variabilitas dalam lingkungan dan persyaratan, seperti mengubah volume data, penyesuaian target biaya, dan implementasi SLA, penskalaan cluster dapat membantu Anda menyesuaikan konfigurasi cluster untuk mencapai tujuan Anda. Manfaat utama meliputi:
Kontrol granular yang ditingkatkan — Pengenalan pengaturan kinerja penggunaan memungkinkan Anda menyesuaikan perilaku penskalaan cluster dengan mudah sesuai dengan kebutuhan Anda. Anda dapat meningkatkan skala untuk memenuhi permintaan sumber daya komputasi atau menurunkan skala untuk menghemat sumber daya, berdasarkan pola penggunaan Anda.
Peningkatan optimalisasi biaya — Anda dapat memilih nilai pemanfaatan yang rendah karena persyaratan menentukan untuk lebih mudah memenuhi tujuan biaya Anda.
Memulai dengan optimasi
Pengaturan dan konfigurasi
Gunakan langkah-langkah ini untuk mengatur indeks kinerja dan mengoptimalkan strategi penskalaan Anda.
Perintah berikut memperbarui cluster yang ada dengan strategi
[1]penskalaan yang dioptimalkan penggunaan:aws emr put-managed-scaling-policy --cluster-id 'cluster-id' \ --managed-scaling-policy '{ "ComputeLimits": { "UnitType": "Instances", "MinimumCapacityUnits": 1, "MaximumCapacityUnits": 2, "MaximumOnDemandCapacityUnits": 2, "MaximumCoreCapacityUnits": 2 }, "ScalingStrategy": "ADVANCED", "UtilizationPerformanceIndex": "1" }' \ --region "region-name"Atribut
ScalingStrategydanUtilizationPerformanceIndexbaru dan relevan dengan pengoptimalan penskalaan. Anda dapat memilih strategi penskalaan yang berbeda dengan menetapkan nilai yang sesuai (1, 25, 50, 75, dan 100) untukUtilizationPerformanceIndexatribut dalam kebijakan penskalaan terkelola.Untuk kembali ke strategi penskalaan terkelola default, jalankan
put-managed-scaling-policyperintah tanpa menyertakan atribut and.ScalingStrategyUtilizationPerformanceIndex(Ini opsional.) Contoh ini menunjukkan cara melakukan ini:aws emr put-managed-scaling-policy \ --cluster-id 'cluster-id' \ --managed-scaling-policy '{"ComputeLimits":{"UnitType":"Instances","MinimumCapacityUnits":1,"MaximumCapacityUnits":2,"MaximumOnDemandCapacityUnits":2,"MaximumCoreCapacityUnits":2}}' \ --region "region-name"
Menggunakan metrik pemantauan untuk melacak pemanfaatan cluster
Dimulai dengan EMR versi 7.3.0, Amazon EMR menerbitkan empat metrik baru yang terkait dengan memori dan CPU virtual. Anda dapat menggunakan ini untuk mengukur pemanfaatan cluster di seluruh strategi penskalaan. Metrik ini tersedia untuk kasus penggunaan apa pun, tetapi Anda dapat menggunakan detail yang disediakan di sini untuk memantau Penskalaan Lanjutan.
Metrik bermanfaat yang tersedia meliputi:
YarnContainersUsedMemoryGBSeconds— Jumlah memori yang dikonsumsi oleh aplikasi yang dikelola oleh YARN.
YarnContainersTotalMemoryGBSeconds— Total kapasitas memori yang dialokasikan ke YARN dalam cluster.
YarnNodesUsedVCPUSeconds— Total detik VCPU untuk setiap aplikasi yang dikelola oleh YARN.
YarnNodesTotalVCPUSeconds— Total detik VCPU agregat untuk memori yang dikonsumsi, termasuk jendela waktu ketika benang belum siap.
Anda dapat menganalisis metrik sumber daya menggunakan Amazon CloudWatch Logs Insights. Fitur termasuk bahasa kueri yang dibuat khusus yang membantu Anda mengekstrak metrik khusus untuk penggunaan sumber daya dan penskalaan.
Kueri berikut, yang dapat Anda jalankan di Amazon CloudWatch konsol, menggunakan matematika metrik untuk menghitung pemanfaatan memori rata-rata (e1) dengan membagi jumlah berjalan dari memori yang dikonsumsi (e2) dengan jumlah total memori (e3) yang berjalan:
{ "metrics": [ [ { "expression": "e2/e3", "label": "Average Mem Utilization", "id": "e1", "yAxis": "right" } ], [ { "expression": "RUNNING_SUM(m1)", "label": "RunningTotal-YarnContainersUsedMemoryGBSeconds", "id": "e2", "visible": false } ], [ { "expression": "RUNNING_SUM(m2)", "label": "RunningTotal-YarnContainersTotalMemoryGBSeconds", "id": "e3", "visible": false } ], [ "AWS_EMR_ManagedResize", "YarnContainersUsedMemoryGBSeconds", "ACCOUNT_ID", "793684541905", "COMPONENT", "ManagerService", "JOB_FLOW_ID", "cluster-id", { "id": "m1", "label": "YarnContainersUsedMemoryGBSeconds" } ], [ ".", "YarnContainersTotalMemoryGBSeconds", ".", ".", ".", ".", ".", ".", { "id": "m2", "label": "YarnContainersTotalMemoryGBSeconds" } ] ], "view": "timeSeries", "stacked": false, "region": "region", "period": 60, "stat": "Sum", "title": "Memory Utilization" }
Untuk menanyakan log, Anda dapat memilih CloudWatch di AWS konsol. Untuk informasi selengkapnya tentang menulis kueri untuk CloudWatch, lihat Meng analisis data CloudWatch log dengan Logs Insights di Panduan Pengguna Amazon CloudWatch Log.
Gambar berikut menunjukkan metrik ini untuk cluster sampel:
Pertimbangan dan batasan
Efektivitas strategi penskalaan dapat bervariasi, tergantung pada karakteristik beban kerja unik dan konfigurasi cluster Anda. Kami menyarankan Anda untuk bereksperimen dengan pengaturan penskalaan untuk menentukan nilai indeks optimal untuk kasus penggunaan Anda.
Amazon EMR Advanced Scaling sangat cocok untuk beban kerja batch. Untuk SQL/data-warehousing dan streaming beban kerja, sebaiknya gunakan strategi penskalaan terkelola default untuk kinerja optimal.
Amazon EMR Advanced Scaling tidak didukung saat Konfigurasi Label Node diaktifkan di cluster. Jika Konfigurasi Penskalaan Lanjutan dan Konfigurasi Label Node diaktifkan bersama dalam cluster, maka perilaku penskalaan akan seolah-olah pengaturan penskalaan terkelola default diaktifkan.
Strategi penskalaan yang dioptimalkan kinerja memungkinkan eksekusi pekerjaan lebih cepat dengan mempertahankan sumber daya komputasi tinggi untuk jangka waktu yang lebih lama daripada strategi penskalaan terkelola default. Mode ini memprioritaskan peningkatan cepat untuk memenuhi permintaan sumber daya, menghasilkan penyelesaian pekerjaan yang lebih cepat. Hal ini dapat mengakibatkan biaya yang lebih tinggi jika dibandingkan dengan strategi default.
Dalam kasus di mana cluster sudah dioptimalkan dan dimanfaatkan sepenuhnya, mengaktifkan Advanced Scaling mungkin tidak memberikan manfaat tambahan. Dalam beberapa situasi, mengaktifkan Advanced Scaling dapat menyebabkan peningkatan biaya karena beban kerja mungkin berjalan lebih lama. Dalam kasus ini, sebaiknya gunakan strategi penskalaan terkelola default untuk memastikan alokasi sumber daya dan efisiensi biaya yang optimal.
Dalam konteks penskalaan terkelola, penekanan bergeser ke pemanfaatan sumber daya selama waktu eksekusi karena pengaturan disesuaikan dari kinerja yang dioptimalkan [100] menjadi dioptimalkan penggunaan [1]. Namun, penting untuk dicatat bahwa hasilnya mungkin bervariasi, berdasarkan sifat beban kerja dan topologi cluster. Untuk memastikan hasil optimal untuk kasus penggunaan Anda, kami sangat menyarankan untuk menguji strategi penskalaan dengan beban kerja Anda untuk menentukan pengaturan yang paling sesuai.
Hanya PerformanceUtilizationIndex menerima nilai-nilai berikut:
1
25
50
75
100
Nilai lain yang dikirimkan menghasilkan kesalahan validasi.