View a markdown version of this page

Menggunakan penskalaan terkelola di Amazon EMR - Amazon EMR

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 Amazon EMR terbaru (Amazon EMR 7.13.0) untuk penskalaan terkelola. Pada beberapa rilis awal, Anda mungkin mengalami kegagalan aplikasi yang terputus-putus 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 Wilayah dan ketersediaan rilis, lihatKetersediaan penskalaan terkelola.

Gambaran umum

Dengan Amazon EMR versi 5.30.0 dan yang lebih tinggi (kecuali untuk Amazon EMR 6.0.0), Anda dapat mengaktifkan penskalaan terkelola Amazon EMR. Penskalaan terkelola memungkinkan Anda secara otomatis menambah atau mengurangi jumlah instans atau unit di cluster berdasarkan beban kerja. Amazon EMR terus mengevaluasi metrik cluster untuk membuat keputusan penskalaan yang mengoptimalkan klaster Anda untuk biaya dan kecepatan. Penskalaan terkelola tersedia untuk cluster yang terdiri dari grup instans atau armada instans.

Ketersediaan penskalaan terkelola

  • Berikut ini Wilayah AWS, penskalaan terkelola Amazon EMR tersedia dengan Amazon EMR 6.14.0 dan yang lebih tinggi:

    • Asia Pasifik (Taipei) (ap-east-2)

    • Asia Pasifik (Melbourne) (ap-Southeast-4)

    • Asia Pasifik (Malaysia) (ap-Southeast-5)

    • Asia Pasifik (Selandia Baru) (ap-southeast-6)

    • Asia Pasifik (Thailand) (ap-southeast-7)

    • Kanada Barat (Calgary) (ca-barat-1)

    • Eropa (Spanyol) (eu-selatan-2)

    • Meksiko (Tengah) (mx-central-1)

  • 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) (pusat-1)

    • Middle East (UAE) (Timur Tengah (UAE)

    • Tiongkok (Beijing) (cn-utara-1)

    • China (Ningxia) (cn-barat laut-1)

    • AWS GovCloud (US-East) (us-gov-east-1)

    • AWS GovCloud (US-West) (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 kapasitas EC2 yang diizinkan dalam sebuah klaster. 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 kapasitas EC2 yang diizinkan dalam sebuah klaster. Hal ini diukur melalui inti atau instans virtual central processing unit (vCPU) untuk grup instans. Hal ini diukur melalui unit untuk armada instans.

  • On-Demand limit (MaximumOnDemandCapacityUnits) (Opsional) — Batas atas kapasitas EC2 yang diizinkan untuk tipe On-Demand pasar dalam sebuah cluster. Jika parameter ini tidak ditentukan, default ke nilai MaximumCapacityUnits.

    • Parameter ini digunakan untuk membagi alokasi kapasitas antara On-Demand dan Instans Spot. Misalnya, jika Anda menetapkan parameter minimum sebagai 2 instance, parameter maksimum sebagai 100 instans, On-Demand batas sebagai 10 instans, maka penskalaan terkelola Amazon EMR akan menskalakan hingga 10 On-Demand Instans dan mengalokasikan kapasitas yang tersisa ke Instans Spot. Untuk informasi selengkapnya, lihat Skenario alokasi simpul.

  • Simpul inti maksimum (MaximumCoreCapacityUnits) (Opsional) - Batas atas kapasitas EC2 yang diizinkan untuk tipe simpul inti dalam sebuah klaster. Jika parameter ini tidak ditentukan, default ke nilai MaximumCapacityUnits.

    • Parameter ini digunakan untuk memisah alokasi kapasitas antara simpul inti dan simpul tugas. Misalnya, jika Anda menetapkan parameter minimum sebagai 2 instance, maksimum sebagai 100 instans, node inti maksimum sebagai 17 instans, maka penskalaan terkelola Amazon EMR akan menskalakan hingga 17 node inti dan mengalokasikan 83 instans sisanya 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 terbatas Wilayah AWS dan Amazon EMR. 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 metrik-kolektor 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 penskalaan terkelola berfungsi, sebaiknya lakukan salah satu tindakan berikut:

  • Jika pekerjaan YARN Anda lambat sebentar-sebentar selama penurunan skala, dan log Pengelola Sumber Daya YARN menunjukkan bahwa sebagian besar node Anda dicantumkan dalam daftar 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 meny YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs etel ke nilai yang lebih besar untuk memastikan Amazon EMR tidak memaksa menghentikan node saat “Spark Task” terpanjang masih berjalan di node. Default saat ini adalah 60 menit, yang berarti YARN memaksa mengakhiri wadah setelah 60 menit setelah node memasuki status dekomisi.

    Contoh berikut baris Log Pengelola Sumber Daya YARN 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 dicantumkan ditolak, dan mengonfigurasi perilaku penonaktifan node Spark.

  • Untuk beban kerja Spark, menonaktifkan Spark Dynamic Resource Allocator (DRA) dengan mengubah properti Spark spark.dynamic menjadi FALSE dapat Allocation.enabled menyebabkan masalah Managed Scaling, di mana cluster dapat ditingkatkan lebih dari yang diperlukan untuk beban kerja Anda (hingga komputasi maksimum). Saat menggunakan Managed Scaling untuk beban kerja ini, sebaiknya Anda tetap mengaktifkan Spark DRA, yang merupakan status default properti ini.

  • Over-utilization volume EBS dapat menyebabkan masalah Managed Scaling. Kami menyarankan agar Anda menjaga volume EBS di bawah 90% pemanfaatan. Untuk informasi selengkapnya, lihat Opsi dan perilaku penyimpanan instans di Amazon EMR.

  • CloudWatch Metrik Amazon sangat penting untuk penskalaan yang dikelola Amazon EMR untuk 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 CloudWatch alarm Amazon.

  • 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 On-Demand batas untuk penskalaan terkelola Amazon EMR, pertimbangkan perbedaan antara grup instans dan armada instans. Setiap grup instans terdiri dari jenis instans yang sama dan opsi pembelian yang sama untuk instance: On-Demand atau Spot. Untuk setiap armada instans, Anda dapat menentukan hingga lima jenis instans, yang dapat disediakan sebagai On-Demand 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 Iz inkan Semua keluar default 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 di port 9443. Grup keamanan Anda untuk akses layanan juga harus mengizinkan lalu lintas TCP masuk pada port 9443 dari grup keamanan master. Untuk informasi selengkapnya tentang mengonfigurasi grup keamanan, lihat grup EMR-managed keamanan Amazon untuk instance utama (subnet pribadi).

  • Anda dapat menggunakannya AWS CloudFormation untuk mengonfigurasi penskalaan terkelola Amazon EMR. Untuk informasi selengkapnya, lihat AWS::EMR::Klaster pada 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 simpul, lihat Node tugas.

  • Pelabelan node tidak didukung secara default di Amazon EMR rilis 6.15 atau lebih rendah. Untuk informasi selengkapnya, lihat Mem ahami jenis node: 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 node inti dan node tugas. Namun, jika Anda menggunakan Amazon EMR rilis 7.0 atau lebih tinggi, Anda dapat mengonfigurasi label node berdasarkan jenis node dan jenis pasar, seperti On-Demand dan Spot.

  • Jika permintaan proses aplikasi meningkat dan permintaan eksekutor berkurang saat Anda membatasi proses aplikasi ke node inti, Anda dapat menambahkan node inti kembali dan menghapus node tugas dalam operasi pengubahan ukuran yang sama. Untuk informasi selengkapnya, lihat Mem ahami strategi dan skenario alokasi node.

  • Amazon EMR tidak memberi label pada node tugas, jadi Anda tidak dapat mengatur properti YARN untuk membatasi proses aplikasi hanya untuk node tugas. Namun, jika Anda ingin menggunakan tipe pasar sebagai label simpul, Anda dapat menggunakan SPOT label ON_DEMAND or untuk penempatan proses aplikasi. Kami tidak menyarankan menggunakan node Spot untuk proses primer aplikasi.

  • Saat menggunakan label node, total unit yang berjalan di cluster dapat sementara melebihi komputasi maksimum yang ditetapkan dalam kebijakan penskalaan terkelola Anda sementara Amazon EMR menonaktifkan beberapa instans Anda. Total unit yang diminta akan selalu berada di atau di bawah komputasi maksimum polis Anda.

  • Penskalaan terkelola hanya mendukung label node ON_DEMAND dan SPOT atau CORE danTASK. Label simpul 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.

  • Penskalaan terkelola menskalakan node inti dan 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 Per timbangan dan praktik terbaik.

  • Anda tidak dapat menempatkan proses aplikasi dan pelaksana hanya pada ON_DEMAND node core atau. Jika Anda ingin menambahkan proses aplikasi dan pelaksana pada salah satu node, jangan gunakan yarn.node-labels.am.default-node-label-expression konfigurasi.

    Misalnya, untuk menempatkan proses aplikasi dan eksekutor di ON_DEMAND node, atur komputasi maks sama dengan maksimum di ON_DEMAND node. Juga hapus yarn.node-labels.am.default-node-label-expression konfigurasi.

    Untuk menambahkan proses aplikasi dan pelaksana pada core node, hapus yarn.node-labels.am.default-node-label-expression konfigurasi.

  • Saat Anda menggunakan penskalaan terkelola dengan label node, tet yarn.scheduler.capacity.maximum-am-resource-percent: 1 apkan properti jika Anda berencana untuk menjalankan beberapa aplikasi secara paralel. Melakukan hal itu memastikan bahwa proses aplikasi Anda sepenuhnya memanfaatkan ON_DEMAND node CORE atau yang tersedia.

  • 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 yang dikelola Amazon EMR perlu menjadwal ulang aplikasi Anda ke komisi ulang atau node. CORE ON_DEMAND

  • Untuk mengurangi risiko kegagalan aplikasi karena kehilangan data shuffle, Amazon EMR mengumpulkan metrik dari cluster untuk menentukan node yang memiliki data shuffle sementara 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. Hal ini dapat memengaruhi penurunan skala instans di cluster Anda secara tepat waktu. Untuk cluster yang memiliki data shuffle dalam jumlah besar, 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 Versi Amazon EMR
20 November 2024 Penskalaan terkelola tersedia di wilayah il-central-1 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 Wil eu-central-2 ayah 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 instans berdasarkan tipe pasar atau tipe node untuk meningkatkan penskalaan otomatis. 7.2.0 dan lebih tinggi
Maret 31, 2024 Penskalaan terkelola tersedia di ap-south-2 Wilayah 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 Managed scaling tersedia di Wil ap-southeast-3 ayah Asia Pasifik (Jakarta). 6.14.0 dan lebih tinggi
Juli 28, 2023 Penskalaan terkelola yang ditingkatkan untuk beralih ke grup instans tugas yang berbeda saat peningkatan skala saat Amazon EMR mengalami penundaan dalam peningkatan skala dengan grup instans saat ini. 5.34.0 dan lebih tinggi, 6.4.0 dan lebih tinggi
Juni 16, 2023 Penskalaan terkelola yang ditingkatkan untuk mengetahui node yang menjalankan master aplikasi sehingga node tersebut tidak diperkecil. Untuk informasi selengkapnya, lihat Memahami strategi dan skenario alokasi node Amazon EMR. 5.34.0 dan lebih tinggi, 6.4.0 dan lebih tinggi
Maret 21, 2022 Menambahkan kesadaran data Spark shuffle yang digunakan saat menurunkan skala cluster. Untuk cluster Amazon EMR dengan Apache Spark dan fitur penskalaan terkelola diaktifkan, Amazon EMR terus memantau pelaksana Spark dan lokasi data shuffle menengah. Dengan menggunakan informasi ini, Amazon EMR hanya menurunkan skala instans 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 Pem rograman Spark. 5.34.0 dan lebih tinggi, 6.4.0 dan lebih tinggi