Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan penskalaan terkelola di Amazon EMR
penting
Kami sangat menyarankan Anda menggunakan rilis EMR Amazon terbaru (Amazon EMR 7.9.0) untuk penskalaan terkelola. Dalam beberapa rilis awal, Anda mungkin mengalami kegagalan aplikasi intermiten atau penundaan dalam penskalaan. Amazon EMR menyelesaikan masalah ini dengan rilis 5.x 5.30.2, 5.31.1, 5.32.1, 5.33.1 dan lebih tinggi, dan dengan rilis 6.x 6.1.1, 6.2.1, 6.3.1 dan lebih tinggi. Untuk informasi selengkapnya Ketersediaan wilayah dan rilis, lihatKetersediaan penskalaan terkelola.
Gambaran Umum
Dengan Amazon EMR versi 5.30.0 dan yang lebih tinggi (kecuali Amazon EMR 6.0.0), Anda dapat mengaktifkan penskalaan terkelola Amazon EMR. Penskalaan terkelola memungkinkan Anda secara otomatis menambah atau mengurangi jumlah instance atau unit di klaster berdasarkan beban kerja. Amazon EMR terus mengevaluasi metrik klaster untuk membuat keputusan penskalaan yang mengoptimalkan kluster Anda untuk biaya dan kecepatan. Penskalaan terkelola tersedia untuk cluster yang terdiri dari grup instans atau armada instance.
Ketersediaan penskalaan terkelola
-
Berikut ini Wilayah AWS, penskalaan terkelola Amazon EMR tersedia dengan Amazon EMR 6.14.0 dan yang lebih tinggi:
-
Eropa (Spanyol) (eu-south-2)
-
-
Berikut ini Wilayah AWS, penskalaan terkelola Amazon EMR tersedia dengan Amazon EMR 5.30.0 dan 6.1.0 dan yang lebih tinggi:
AS Timur (Virginia Utara) (us-east-1)
US East (Ohio) (us-east-2)
AS Barat (Oregon) (us-west-2)
AS Barat (California Utara) (us-west-1)
Africa (Cape Town) (af-south-1)
Asia Pacific (Hong Kong) (ap-east-1)
Asia Pasifik (Mumbai) (ap-south-1)
Asia Pasifik (Hyderabad) (ap-south-2)
Asia Pasifik (Seoul) (ap-northeast-2)
Asia Pasifik (Singapura) (ap-southeast-1)
Asia Pasifik (Sydney) (ap-southeast-2)
Asia Pasifik (Jakarta) (ap-southeast-3)
Asia Pasifik (Tokyo) (ap-northeast-1)
Asia Pasifik (Osaka) (ap-northeast-3)
Kanada (Pusat) (ca-central-1)
Amerika Selatan (Sao Paulo) (sa-east-1)
Eropa (Frankfurt) (eu-central-1)
Eropa (Zurich) (eu-central-2)
Eropa (Irlandia) (eu-west-1)
Eropa (London) (eu-west-2)
Europe (Milan) (eu-south-1)
Eropa (Paris) (eu-west-3)
Eropa (Stockholm) (eu-north-1)
Israel (Tel Aviv) (il-central-1)
Timur Tengah (UEA) (me-central-1)
Tiongkok (Beijing) (cn-utara-1)
Tiongkok (Ningxia) (cn-barat laut-1)
AWS GovCloud (AS-Timur) (us-gov-east-1)
AWS GovCloud (AS-Barat) (us-gov-west-1)
-
Penskalaan terkelola Amazon EMR hanya berfungsi dengan aplikasi YARN, seperti Spark, Hadoop, Hive, dan Flink. Itu tidak mendukung aplikasi yang tidak didasarkan pada YARN, seperti Presto dan HBase.
Parameter penskalaan terkelola
Anda harus mengonfigurasi parameter berikut untuk penskalaan terkelola. Batas hanya berlaku untuk simpul utama dan tugas. Anda tidak dapat menskalakan node utama setelah konfigurasi awal.
-
Minimum (
MinimumCapacityUnits
) — Batas bawah EC2 kapasitas yang diizinkan dalam sebuah cluster. Hal ini diukur melalui inti atau instans virtual central processing unit (vCPU) untuk grup instans. Hal ini diukur melalui unit untuk armada instans. -
Maksimum (
MaximumCapacityUnits
) — Batas atas EC2 kapasitas yang diizinkan dalam sebuah cluster. Hal ini diukur melalui inti atau instans virtual central processing unit (vCPU) untuk grup instans. Hal ini diukur melalui unit untuk armada instans. -
Batas atas Permintaan (
MaximumOnDemandCapacityUnits
) (Opsional) — Batas atas EC2 kapasitas yang diizinkan untuk jenis pasar On-Demand dalam sebuah cluster. Jika parameter ini tidak ditentukan, default ke nilaiMaximumCapacityUnits
.-
Parameter ini digunakan untuk memisah alokasi kapasitas antara Instans Sesuai Permintaan dan Instans Spot. Misalnya, jika Anda menetapkan parameter minimum sebagai 2 instans, parameter maksimum sebagai 100 instans, batas Sesuai Permintaan sebagai 10 instans, maka penskalaan terkelola Amazon EMR menskalakan hingga 10 Instans Sesuai Permintaan dan mengalokasikan kapasitas yang tersisa ke Instans Spot. Untuk informasi selengkapnya, lihat Skenario alokasi simpul.
-
-
Node inti maksimum (
MaximumCoreCapacityUnits
) (Opsional) - Batas atas EC2 kapasitas yang diizinkan untuk tipe node inti dalam sebuah cluster. Jika parameter ini tidak ditentukan, default ke nilaiMaximumCapacityUnits
.-
Parameter ini digunakan untuk memisah alokasi kapasitas antara simpul inti dan simpul tugas. Misalnya, jika Anda menetapkan parameter minimum sebagai 2 instance, maksimum 100 instance, node inti maksimum sebagai 17 instance, maka Amazon EMR mengelola skala skala hingga 17 node inti dan mengalokasikan 83 instance yang tersisa ke node tugas. Untuk informasi selengkapnya, lihat Skenario alokasi simpul.
-
Untuk informasi selengkapnya tentang parameter penskalaan terkelola, lihat ComputeLimits
.
Pertimbangan untuk penskalaan terkelola Amazon EMR
-
Penskalaan terkelola didukung dalam rilis EMR Amazon terbatas Wilayah AWS dan. Untuk informasi selengkapnya, lihat Ketersediaan penskalaan terkelola.
-
Anda harus mengonfigurasi parameter yang diperlukan untuk penskalaan terkelola Amazon EMR. Untuk informasi selengkapnya, lihat Parameter penskalaan terkelola.
-
Untuk menggunakan penskalaan terkelola, proses kolektor metrik harus dapat terhubung ke titik akhir API publik untuk penskalaan terkelola di API Gateway. Jika Anda menggunakan nama DNS pribadi dengan Amazon Virtual Private Cloud, penskalaan terkelola tidak akan berfungsi dengan baik. Untuk memastikan bahwa penskalaan terkelola berfungsi, kami sarankan Anda melakukan salah satu tindakan berikut:
-
Hapus titik akhir VPC antarmuka API Gateway dari VPC Amazon Anda.
-
Ikuti petunjuk di Mengapa saya mendapatkan kesalahan HTTP 403 Forbidden saat menghubungkan ke API Gateway saya APIs dari VPC
? untuk menonaktifkan pengaturan nama DNS pribadi. -
Luncurkan cluster Anda di subnet pribadi sebagai gantinya. Untuk informasi lebih lanjut, lihat topik diSubnet privat.
-
-
Jika pekerjaan YARN Anda sebentar-sebentar lambat selama penurunan skala, dan log Manajer Sumber Daya YARN menunjukkan bahwa sebagian besar node Anda dicantumkan penolakan selama waktu itu, Anda dapat menyesuaikan ambang batas waktu penonaktifan.
Kurangi
spark.blacklist.decommissioning.timeout
dari satu jam menjadi satu menit untuk membuat node tersedia untuk wadah tertunda lainnya untuk melanjutkan pemrosesan tugas.Anda juga harus menyetel
YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs
ke nilai yang lebih besar untuk memastikan Amazon EMR tidak memaksa menghentikan node sementara “Spark Task” terpanjang masih berjalan di node. Default saat ini adalah 60 menit, yang berarti YARN menghentikan kontainer secara paksa setelah 60 menit setelah node memasuki status dekomisi.Contoh berikut baris YARN Resource Manager Log menunjukkan node yang ditambahkan ke status dekomisi:
2021-10-20 15:55:26,994 INFO org.apache.hadoop.YARN.server.resourcemanager.DefaultAMSProcessor (IPC Server handler 37 on default port 8030): blacklist are updated in Scheduler.blacklistAdditions: [ip-10-10-27-207.us-west-2.compute.internal, ip-10-10-29-216.us-west-2.compute.internal, ip-10-10-31-13.us-west-2.compute.internal, ... , ip-10-10-30-77.us-west-2.compute.internal], blacklistRemovals: []
Lihat detail selengkapnya tentang cara Amazon EMR terintegrasi dengan daftar penolakan YARN selama penonaktifan node, kasus ketika node
di Amazon EMR dapat ditolak terdaftar, dan mengonfigurasi perilaku penonaktifan simpul Spark. -
Pemanfaatan volume EBS yang berlebihan dapat menyebabkan masalah Penskalaan Terkelola. Kami menyarankan Anda mempertahankan volume EBS di bawah 90% pemanfaatan. Untuk informasi selengkapnya, lihat Opsi dan perilaku penyimpanan instans di Amazon EMR.
-
CloudWatch Metrik Amazon sangat penting agar penskalaan terkelola Amazon EMR dapat beroperasi. Kami menyarankan Anda memantau CloudWatch metrik Amazon dengan cermat untuk memastikan data tidak hilang. Untuk informasi selengkapnya tentang cara mengonfigurasi CloudWatch alarm untuk mendeteksi metrik yang hilang, lihat Menggunakan alarm Amazon CloudWatch .
-
Operasi penskalaan terkelola pada klaster 5.30.0 dan 5.30.1 tanpa Presto yang diinstal dapat menyebabkan gagal aplikasi atau menyebabkan grup instans seragam atau armada instans tetap berada di negara
ARRESTED
, terutama ketika operasi menurunkan skala diikuti dengan cepat oleh operasi menaikkan skala.Sebagai solusinya, pilih Presto sebagai aplikasi untuk diinstal saat Anda membuat cluster dengan Amazon EMR rilis 5.30.0 dan 5.30.1, bahkan jika pekerjaan Anda tidak memerlukan Presto.
-
Saat Anda menetapkan node inti maksimum dan batas On-Demand untuk penskalaan terkelola Amazon EMR, pertimbangkan perbedaan antara grup instans dan armada instans. Setiap grup instans terdiri dari tipe instans yang sama dan opsi pembelian yang sama untuk instans: Sesuai Permintaan atau Spot. Untuk setiap armada instans, Anda dapat menentukan hingga lima tipe instans, yang dapat disediakan sebagai instans Sesuai Permintaan dan instans Spot. Untuk informasi selengkapnya, lihat Membuat sebuah klaster dengan armada instans atau grup instans seragam, Opsi armada instans, dan Skenario alokasi simpul.
-
Dengan Amazon EMR 5.30.0 dan yang lebih tinggi, jika Anda menghapus aturan default Izinkan Semua keluar ke 0.0.0.0/ untuk grup keamanan master, Anda harus menambahkan aturan yang memungkinkan konektivitas TCP keluar ke grup keamanan Anda untuk akses layanan pada port 9443. Grup keamanan Anda untuk akses layanan juga harus mengizinkan lalu lintas TCP masuk pada port 9443 dari grup keamanan utama. Untuk informasi selengkapnya tentang mengonfigurasi grup keamanan, lihat grup keamanan yang dikelola Amazon EMR untuk contoh utama (subnet pribadi).
-
Anda dapat menggunakan AWS CloudFormation untuk mengonfigurasi penskalaan terkelola Amazon EMR. Untuk informasi selengkapnya, lihat AWS::EMR::Cluster di AWS CloudFormation Panduan Pengguna.
-
Jika Anda menggunakan node Spot, pertimbangkan untuk menggunakan label node untuk mencegah Amazon EMR menghapus proses aplikasi saat Amazon EMR menghapus node Spot. Untuk informasi selengkapnya tentang label node, lihat Node tugas.
-
Pelabelan node tidak didukung secara default di Amazon EMR rilis 6.15 atau lebih rendah. Untuk informasi selengkapnya, lihat Memahami tipe simpul: node primer, inti, dan tugas.
-
Jika Anda menggunakan Amazon EMR rilis 6.15 atau lebih rendah, Anda hanya dapat menetapkan label node berdasarkan jenis node, seperti inti dan node tugas. Namun, jika Anda menggunakan Amazon EMR rilis 7.0 atau yang lebih tinggi, Anda dapat mengonfigurasi label node berdasarkan jenis node dan tipe pasar, seperti On-Demand dan Spot.
-
Jika permintaan proses aplikasi meningkat dan permintaan pelaksana berkurang ketika Anda membatasi proses aplikasi ke node inti, Anda dapat menambahkan kembali node inti dan menghapus node tugas dalam operasi pengubahan ukuran yang sama. Untuk informasi selengkapnya, lihat Memahami strategi dan skenario alokasi node.
-
Amazon EMR tidak memberi label pada node tugas, jadi Anda tidak dapat menyetel properti YARN untuk membatasi proses aplikasi hanya untuk node tugas. Namun, jika Anda ingin menggunakan tipe pasar sebagai label node, Anda dapat menggunakan
SPOT
labelON_DEMAND
atau untuk penempatan proses aplikasi. Kami tidak menyarankan menggunakan node Spot untuk proses utama aplikasi. -
Saat menggunakan label node, total unit yang berjalan di klaster sementara dapat melebihi set komputasi maksimal dalam kebijakan penskalaan terkelola sementara Amazon EMR menonaktifkan beberapa instans Anda. Total unit yang diminta akan selalu berada di atau di bawah perhitungan maksimal polis Anda.
-
Penskalaan terkelola hanya mendukung label node
ON_DEMAND
danSPOT
atauCORE
danTASK
. Label node kustom tidak didukung. -
Amazon EMR membuat label node saat membuat cluster dan sumber daya penyediaan. Amazon EMR tidak mendukung penambahan label node saat Anda mengkonfigurasi ulang cluster. Anda juga tidak dapat memodifikasi label node saat mengonfigurasi penskalaan terkelola setelah meluncurkan cluster.
-
Skala skala terkelola inti dan node tugas secara independen berdasarkan proses aplikasi dan permintaan pelaksana. Untuk mencegah masalah kehilangan data HDFS selama penurunan skala inti, ikuti praktik standar untuk node inti. Untuk mempelajari lebih lanjut tentang praktik terbaik tentang node inti dan replikasi HDFS, lihat Pertimbangan dan praktik terbaik.
-
Anda tidak dapat menempatkan proses aplikasi dan pelaksana hanya pada
core
atau node.ON_DEMAND
Jika Anda ingin menambahkan proses aplikasi dan pelaksana pada salah satu node, jangan gunakan konfigurasi.yarn.node-labels.am.default-node-label-expression
Misalnya, untuk menempatkan proses aplikasi dan pelaksana di
ON_DEMAND
node, atur komputasi maks sama dengan maksimum di node.ON_DEMAND
Hapus jugayarn.node-labels.am.default-node-label-expression
konfigurasi.Untuk menambahkan proses aplikasi dan pelaksana pada
core
node, hapus konfigurasi.yarn.node-labels.am.default-node-label-expression
-
Saat Anda menggunakan penskalaan terkelola dengan label node, atur properti
yarn.scheduler.capacity.maximum-am-resource-percent: 1
jika Anda berencana untuk menjalankan beberapa aplikasi secara paralel. Melakukannya memastikan bahwa proses aplikasi Anda sepenuhnya memanfaatkan yang tersediaCORE
atauON_DEMAND
node. -
Jika Anda menggunakan penskalaan terkelola dengan label node, setel properti
yarn.resourcemanager.decommissioning.timeout
ke nilai yang lebih panjang dari aplikasi yang berjalan paling lama di cluster Anda. Melakukannya mengurangi kemungkinan penskalaan terkelola Amazon EMR perlu menjadwal ulang aplikasi Anda ke remisi atau node.CORE
ON_DEMAND
Untuk mengurangi risiko kegagalan aplikasi karena kehilangan data acak, Amazon EMR mengumpulkan metrik dari cluster untuk menentukan node yang memiliki data shuffle transien yang ada dari tahap saat ini dan sebelumnya. Dalam kasus yang jarang terjadi, metrik dapat terus melaporkan data basi untuk aplikasi yang sudah selesai atau dihentikan. Ini dapat memengaruhi penurunan skala instans tepat waktu di klaster Anda. Untuk cluster yang memiliki sejumlah besar data shuffle, pertimbangkan untuk menggunakan EMR versi 6.13 dan yang lebih baru.
Riwayat fitur
Tabel ini mencantumkan pembaruan untuk kemampuan penskalaan terkelola Amazon EMR.
Tanggal rilis | Kemampuan | Amazon EMR versi |
---|---|---|
November 20, 2024 | Penskalaan terkelola tersedia di il-central-1 wilayah Israel (Tel Aviv), Timur me-central-1 Tengah (UEA), dan ap-northeast-3 Asia Pasifik (Osaka). |
5.30.0 dan 6.1.0 dan lebih tinggi |
November 15, 2024 | Penskalaan terkelola tersedia di Wilayah eu-central-2 Eropa (Zurich). |
5.30.0 dan 6.1.0 dan lebih tinggi |
Agustus 20, 2024 | Label node sekarang tersedia dalam penskalaan terkelola, sehingga Anda dapat memberi label pada instance Anda berdasarkan tipe pasar atau tipe node untuk meningkatkan penskalaan otomatis. | 7.2.0 dan lebih tinggi |
Maret 31, 2024 | Penskalaan terkelola tersedia di Wilayah ap-south-2 Asia Pasifik (Hyderabad). |
6.14.0 dan lebih tinggi |
Februari 13, 2024 | Penskalaan terkelola tersedia di eu-south-2 Wilayah Eropa (Spanyol). |
6.14.0 dan lebih tinggi |
Oktober 10, 2023 | Penskalaan terkelola tersedia di Wilayah ap-southeast-3 Asia Pasifik (Jakarta). |
6.14.0 dan lebih tinggi |
Juli 28, 2023 | Peningkatan penskalaan terkelola untuk beralih ke grup instans tugas yang berbeda saat Amazon EMR mengalami penundaan peningkatan skala dengan grup instans saat ini. | 5.34.0 dan lebih tinggi, 6.4.0 dan lebih tinggi |
Juni 16, 2023 | Peningkatan penskalaan terkelola untuk mengetahui node yang menjalankan master aplikasi sehingga node tersebut tidak diperkecil. Untuk informasi selengkapnya, lihat Memahami strategi dan skenario alokasi node EMR Amazon. | 5.34.0 dan lebih tinggi, 6.4.0 dan lebih tinggi |
Maret 21, 2022 | Menambahkan kesadaran data shuffle Spark yang digunakan saat menskalakan cluster. Untuk klaster EMR Amazon dengan Apache Spark dan fitur penskalaan terkelola yang diaktifkan, Amazon EMR terus memantau pelaksana Spark dan lokasi data acak perantara. Dengan menggunakan informasi ini, Amazon EMR hanya mengurangi instance yang kurang dimanfaatkan yang tidak berisi data shuffle yang digunakan secara aktif. Ini mencegah perhitungan ulang data shuffle yang hilang, membantu menurunkan biaya dan meningkatkan kinerja pekerjaan. Untuk informasi selengkapnya, lihat Panduan Pemrograman Spark |
5.34.0 dan lebih tinggi, 6.4.0 dan lebih tinggi |