Menggunakan penskalaan otomatis untuk AWS Glue - AWS Glue

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan penskalaan otomatis untuk AWS Glue

Auto Scaling tersedia untuk AWS Glue ETL dan pekerjaan streaming Anda dengan AWS Glue versi 3.0 atau yang lebih baru.

Dengan Auto Scaling diaktifkan, Anda akan mendapatkan manfaat berikut:

  • AWS Gluesecara otomatis menambahkan dan menghapus pekerja dari cluster tergantung pada paralelisme pada setiap tahap atau microbatch dari pekerjaan yang dijalankan.

  • Ini menghilangkan kebutuhan bagi Anda untuk bereksperimen dan memutuskan jumlah pekerja yang akan ditugaskan untuk pekerjaan AWS Glue ETL Anda.

  • Jika Anda memilih jumlah maksimum pekerja, AWS Glue akan memilih sumber daya ukuran yang tepat untuk beban kerja.

  • Anda dapat melihat bagaimana ukuran klaster berubah selama pekerjaan dijalankan dengan melihat CloudWatch metrik pada halaman rincian pekerjaan yang dijalankan di AWS Glue Studio.

Auto Scaling untuk AWS Glue ETL dan pekerjaan streaming memungkinkan penskalaan sesuai permintaan dan pengurangan sumber daya komputasi pekerjaan Anda. AWS Glue Peningkatan skala sesuai permintaan membantu Anda untuk hanya mengalokasikan sumber daya komputasi yang diperlukan pada awalnya pada startup yang dijalankan pekerjaan, dan juga untuk menyediakan sumber daya yang diperlukan sesuai permintaan selama pekerjaan.

Auto Scaling juga mendukung penskalaan dinamis dari sumber daya AWS Glue pekerjaan selama pekerjaan. Selama menjalankan pekerjaan, ketika lebih banyak pelaksana diminta oleh aplikasi Spark Anda, lebih banyak pekerja akan ditambahkan ke cluster. Ketika eksekutor telah menganggur tanpa tugas komputasi aktif, pelaksana dan pekerja terkait akan dihapus.

Skenario umum di mana Auto Scaling membantu biaya dan pemanfaatan untuk aplikasi Spark Anda termasuk driver Spark yang mencantumkan sejumlah besar file di Amazon S3 atau melakukan pemuatan saat pelaksana tidak aktif, tahapan Spark berjalan dengan hanya beberapa pelaksana karena penyediaan berlebihan, dan kemiringan data atau permintaan komputasi yang tidak merata di seluruh tahapan Spark.

Persyaratan

Auto Scaling hanya tersedia untuk AWS Glue versi 3.0 atau yang lebih baru. Untuk menggunakan Auto Scaling, Anda dapat mengikuti panduan migrasi untuk memigrasi pekerjaan yang ada ke AWS Glue versi 3.0 atau yang lebih baru atau membuat pekerjaan baru dengan AWS Glue versi 3.0 atau yang lebih baru.

Auto Scaling tersedia untuk AWS Glue pekerjaan dengan tipe pekerjaG.1X,,G.2X, G.4XG.8X, atau G.025X (hanya untuk pekerjaan Streaming). DPU standar tidak didukung.

Mengaktifkan Auto Scaling di AWS Glue Studio

Pada tab Job details di AWS Glue Studio, pilih jenis sebagai Spark atau Spark Streaming, dan versi Glue sebagai Glue 3.0 atau. Glue 4.0 Kemudian kotak centang akan muncul di bawah Jenis Pekerja.

  • Pilih opsi Skala jumlah pekerja secara otomatis.

  • Tetapkan jumlah maksimum pekerja untuk menentukan jumlah maksimum pekerja yang dapat dijual untuk menjalankan pekerjaan.


                Mengaktifkan dan mengonfigurasi Auto AWS Glue Scaling di Studio.

Mengaktifkan Auto Scaling dengan AWS CLI atau SDK

Untuk mengaktifkan Auto Scaling Dari AWS CLI untuk menjalankan pekerjaan Anda, jalankan start-job-run dengan konfigurasi berikut:

{ "JobName": "<your job name>", "Arguments": { "--enable-auto-scaling": "true" }, "WorkerType": "G.2X", // G.1X and G.2X are allowed for Auto Scaling Jobs "NumberOfWorkers": 20, // represents Maximum number of workers ...other job run configurations... }

Setelah menjalankan tugas ETL selesai, Anda juga dapat menelepon get-job-run untuk memeriksa penggunaan sumber daya aktual dari pekerjaan yang dijalankan dalam DPU-detik. Catatan: bidang baru DPUSeconds hanya akan muncul untuk pekerjaan batch Anda di AWS Glue 3.0 atau yang lebih baru diaktifkan dengan Auto Scaling. Bidang ini tidak didukung untuk pekerjaan streaming.

$ aws glue get-job-run --job-name your-job-name --run-id jr_xx --endpoint https://glue.us-east-1.amazonaws.com --region us-east-1 { "JobRun": { ... "GlueVersion": "3.0", "DPUSeconds": 386.0 } }

Anda juga dapat mengonfigurasi job run dengan Auto Scaling menggunakan AWS GlueSDK dengan konfigurasi yang sama.

Memantau Auto Scaling dengan metrik Amazon CloudWatch

Metrik CloudWatch pelaksana tersedia untuk pekerjaan AWS Glue 3.0 atau yang lebih baru jika Anda mengaktifkan Auto Scaling. Metrik dapat digunakan untuk memantau permintaan dan penggunaan pelaksana yang dioptimalkan dalam aplikasi Spark mereka yang diaktifkan dengan Auto Scaling. Untuk informasi selengkapnya, lihat Pemantauan AWS Glue menggunakan CloudWatch metrik Amazon.

  • lem.driver. ExecutorAllocationManager.pelaksana. numberAllExecutors

  • lem.driver. ExecutorAllocationManager.pelaksana. numberMaxNeededPelaksana


                Memantau Auto Scaling dengan metrik Amazon CloudWatch .

Untuk detail selengkapnya tentang metrik ini, lihatPemantauan perencanaan kapasitas DPU.

Memantau Auto Scaling dengan Spark UI

Dengan Auto Scaling diaktifkan, Anda juga dapat memantau pelaksana yang ditambahkan dan dihapus dengan penskalaan dinamis dan penurunan skala berdasarkan permintaan dalam pekerjaan AWS Glue Anda menggunakan UI Glue Spark. Untuk informasi selengkapnya, lihat Mengaktifkan UI web Apache Spark untuk pekerjaan AWS Glue.


                Memantau Auto Scaling dengan Spark UI.

Pemantauan pekerjaan Auto Scaling menjalankan penggunaan DPU

Anda dapat menggunakan tampilan AWS Glue Studio Job run untuk memeriksa penggunaan DPU dari pekerjaan Auto Scaling Anda.

  1. Pilih Monitoring dari panel AWS Glue Studio navigasi. Halaman Monitoring muncul.

  2. Gulir ke bawah ke bagan Job running.

  3. Arahkan ke pekerjaan yang Anda minati dan gulir ke kolom jam DPU untuk memeriksa penggunaan untuk menjalankan pekerjaan tertentu.

Batasan

AWS Gluestreaming Auto Scaling saat ini tidak mendukung DataFrame gabungan streaming dengan statis yang DataFrame dibuat di luar. ForEachBatch Statis yang DataFrame dibuat di dalam ForEachBatch akan berfungsi seperti yang diharapkan.