Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Dimulai dengan Amazon EMR pada EC2 versi 7.0, Anda dapat memanfaatkan Advanced Scaling untuk mengontrol pemanfaatan sumber daya klaster Anda. Penskalaan lanjutan memperkenalkan skala kinerja pemanfaatan untuk menyetel pemanfaatan sumber daya dan tingkat kinerja Anda sesuai dengan kebutuhan bisnis Anda. Nilai yang Anda tetapkan menentukan apakah klaster Anda lebih tertimbang untuk konservasi sumber daya atau peningkatan skala untuk menangani beban kerja sensitif service-level-agreement (SLA), di mana penyelesaian cepat sangat penting. Saat nilai penskalaan disesuaikan, penskalaan terkelola menginterpretasikan maksud Anda dan menskalakan secara cerdas untuk mengoptimalkan sumber daya. Untuk informasi selengkapnya tentang penskalaan terkelola, lihat Mengonfigurasi penskalaan terkelola untuk Amazon EMR.
Pengaturan penskalaan lanjutan
Nilai yang Anda set untuk Advanced Scaling mengoptimalkan klaster sesuai kebutuhan Anda. Nilai berkisar dari 1 - 100. Nilai yang mungkin adalah 1, 25, 50, 75 dan 100. Jika Anda mengatur indeks ke nilai selain ini, itu menghasilkan kesalahan validasi.
Nilai penskalaan dipetakan ke strategi pemanfaatan sumber daya. Daftar berikut mendefinisikan beberapa di antaranya:
Pemanfaatan dioptimalkan [1] - Pengaturan ini mencegah sumber daya melebihi penyediaan. 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 tahapan jangka 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 service-level-agreement (SLA) di mana waktu lari cepat sangat penting.
catatan
Nilai perantara yang tersedia menyediakan jalan tengah di antara strategi untuk menyempurnakan perilaku Penskalaan Lanjutan klaster Anda.
Manfaat penskalaan tingkat lanjut
Karena Anda memiliki variabilitas dalam lingkungan dan persyaratan Anda, seperti mengubah volume data, penyesuaian target biaya, dan implementasi SLA, penskalaan klaster dapat membantu Anda menyesuaikan konfigurasi klaster untuk mencapai tujuan Anda. Manfaat utama meliputi:
Kontrol granular yang disempurnakan - Pengenalan pengaturan pemanfaatan-kinerja memungkinkan Anda menyesuaikan perilaku penskalaan klaster 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.
Optimalisasi biaya yang ditingkatkan — 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 penskalaan yang dioptimalkan untuk pemanfaatan
[1]
: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
ScalingStrategy
danUtilizationPerformanceIndex
baru dan relevan dengan optimasi penskalaan. Anda dapat memilih strategi penskalaan yang berbeda dengan menetapkan nilai yang sesuai (1, 25, 50, 75, dan 100) untukUtilizationPerformanceIndex
atribut dalam kebijakan penskalaan terkelola.Untuk kembali ke strategi penskalaan terkelola default, jalankan
put-managed-scaling-policy
perintah tanpa menyertakan atribut dan.ScalingStrategy
UtilizationPerformanceIndex
(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 di dalam cluster.
YarnNodesUsedVCPUSeconds— Total detik VCPU untuk setiap aplikasi yang dikelola oleh YARN.
YarnNodesTotalVCPUSeconds— Total detik VCPU gabungan untuk memori yang dikonsumsi, termasuk jendela waktu saat benang belum siap.
Anda dapat menganalisis metrik sumber daya menggunakan Wawasan Amazon CloudWatch Log. Fitur termasuk bahasa kueri yang dibuat khusus yang membantu Anda mengekstrak metrik khusus untuk penggunaan dan penskalaan sumber daya.
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 yang berjalan (e3):
{
"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 meminta log, Anda dapat memilih CloudWatch di AWS konsol. Untuk informasi selengkapnya tentang menulis kueri CloudWatch, lihat Menganalisis data CloudWatch log dengan Wawasan Log di Panduan Pengguna CloudWatch Log Amazon.
Gambar berikut menunjukkan metrik ini untuk cluster sampel:

Pertimbangan dan batasan
Efektivitas strategi penskalaan dapat bervariasi, tergantung pada karakteristik beban kerja unik dan konfigurasi klaster Anda. Kami mendorong 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 beban kerja SQL/data-warehousing dan streaming, sebaiknya gunakan strategi penskalaan terkelola default untuk kinerja yang optimal.
Strategi penskalaan yang dioptimalkan kinerja memungkinkan eksekusi pekerjaan lebih cepat dengan mempertahankan sumber daya komputasi tinggi untuk periode yang lebih lama daripada strategi penskalaan terkelola default. Mode ini memprioritaskan penskalaan dengan cepat untuk memenuhi permintaan sumber daya, sehingga penyelesaian pekerjaan lebih cepat. Ini mungkin menghasilkan biaya yang lebih tinggi jika dibandingkan dengan strategi default.
Dalam kasus di mana klaster 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 dapat 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] ke pemanfaatan yang dioptimalkan [1]. Namun, penting untuk dicatat bahwa hasilnya mungkin bervariasi, berdasarkan sifat beban kerja dan topologi cluster. Untuk memastikan hasil yang optimal untuk kasus penggunaan Anda, kami sangat menyarankan untuk menguji strategi penskalaan dengan beban kerja Anda untuk menentukan pengaturan yang paling sesuai.
Hanya PerformanceUtilizationIndexmenerima nilai-nilai berikut:
1
25
50
75
100
Nilai lain yang dikirimkan menghasilkan kesalahan validasi.