Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat menggunakan metrik pekerjaan AWS Glue untuk memperkirakan jumlah unit pemrosesan data (DPUs) yang dapat digunakan untuk menskalakan AWS Glue pekerjaan.
catatan
Halaman ini hanya berlaku untuk AWS Glue versi 0.9 dan 1.0. Versi selanjutnya AWS Glue berisi fitur hemat biaya yang memperkenalkan pertimbangan tambahan saat perencanaan kapasitas.
Topik
Kode diprofilkan
Skrip berikut membaca partisi Amazon Simple Storage Service (Amazon S3) yang berisi 428 file JSON gzip. Skrip tersebut menerapkan pemetaan untuk mengubah nama bidang, dan mengkonversi dan menuliskannya mereka ke Amazon S3 dalam format Apache Parquet. Anda menyediakan 10 DPUs sesuai default dan menjalankan pekerjaan ini.
datasource0 = glueContext.create_dynamic_frame.from_options(connection_type="s3", connection_options = {"paths": [input_path], "useS3ListImplementation":True,"recurse":True}, format="json")
applymapping1 = ApplyMapping.apply(frame = datasource0, mappings = [(map_spec])
datasink2 = glueContext.write_dynamic_frame.from_options(frame = applymapping1, connection_type = "s3", connection_options = {"path": output_path}, format = "parquet")
Visualisasikan metrik yang diprofilkan pada AWS Glue konsol
Job run 1: Dalam menjalankan pekerjaan ini kami menunjukkan cara mencari jika ada yang kurang disediakan DPUs di cluster. Fungsionalitas eksekusi pekerjaan di AWS Glue menunjukkan jumlah total pelaksana yang aktif berjalan, jumlah tahapan yang diselesaikan, dan jumlah pelaksana maksimum yang dibutuhkan.
Jumlah pelaksana maksimum yang dibutuhkan dihitung dengan menambahkan jumlah total tugas berjalan dan tugas yang tertunda, dan membaginya dengan tugas per pelaksana. Hasil ini adalah ukuran jumlah total pelaksana yang diperlukan untuk memenuhi beban saat ini.
Sebaliknya, jumlah pelaksana yang berjalan aktif mengukur berapa banyak pelaksana yang menjalankan tugas Apache Spark secara aktif. Saat tugas berlangsung, pelaksana maksimum yang diperlukan dapat mengubah dan biasanya turun menjelang akhir tugas saat antrean tugas tertunda berkurang.
Garis merah horizontal pada grafik berikut menunjukkan jumlah pelaksana maksimum yang dialokasikan, yang tergantung pada jumlah yang Anda alokasikan untuk pekerjaan DPUs itu. Dalam hal ini, Anda mengalokasikan 10 DPUs untuk menjalankan pekerjaan. Satu DPU dicadangkan untuk pengelolaan. Sembilan DPUs menjalankan dua pelaksana masing-masing dan satu eksekutor dicadangkan untuk driver Spark. Driver Spark berjalan dalam aplikasi utama. Jadi, jumlah maksimum pelaksana yang dialokasikan adalah 2*9 - 1 = 17 pelaksana.

Sebagaimana ditunjukkan dalam grafik, jumlah maksimum pelaksana yang diperlukan mulai pada 107 pada awal tugas, sedangkan jumlah pelaksana aktif tetap 17. Ini sama dengan jumlah pelaksana maksimum yang dialokasikan dengan 10. DPUs Rasio antara jumlah maksimum pelaksana yang dibutuhkan dan jumlah maksimum pelaksana yang dialokasikan (menambahkan 1 ke kedua driver Spark) memberi Anda faktor kurang-penyediaan: 108/18 = 6x. Anda dapat menyediakan 6 (di bawah rasio penyediaan) *9 (kapasitas DPU saat ini - 1) + 1 DPUs = 55 DPUs untuk skala pekerjaan untuk menjalankannya dengan paralelisme maksimum dan menyelesaikan lebih cepat.
Konsol AWS Glue menampilkan metrik tugas detail sebagai garis statis yang mewakili jumlah asli dari jumlah maksimum pelaksana yang dialokasikan. Konsol menghitung pelaksana maksimum yang dialokasikan dari definisi tugas untuk metrik. Berdasarkan batasan, untuk metrik job run yang mendetail, konsol menghitung eksekutor maksimum yang dialokasikan dari konfigurasi job run, khususnya yang dialokasikan untuk menjalankan pekerjaan. DPUs Untuk melihat metrik masing-masing eksekusi tugas, pilih sebuah eksekusi tugas dan pilih Lihat metrik eksekusi.

Melihat byte Amazon S3 yang di-baca dan di-tulis, perhatikan bahwa tugas menghabiskan waktu enam menit streaming data dari Amazon S3 dan menuliskannya secara paralel. Semua inti yang dialokasikan DPUs membaca dan menulis ke Amazon S3. Jumlah maksimum pelaksana yang dibutuhkan menjadi 107 juga cocok dengan jumlah file dalam input Amazon S3 path—yakni 428. Setiap pelaksana dapat meluncurkan empat tugas Spark untuk memproses empat file input (JSON gzip).
Tentukan kapasitas DPU yang optimal
Berdasarkan hasil dari pekerjaan sebelumnya, Anda dapat meningkatkan jumlah total yang DPUs dialokasikan menjadi 55, dan melihat bagaimana kinerja pekerjaan. Tugas selesai dalam waktu kurang dari tiga menit—setengah dari waktu yang dibutuhkan sebelumnya. Penskalaan keluar tugas tidak linear dalam hal ini karena eksekusi tugas merupakan eksekusi tugas singkat. Pekerjaan dengan tugas yang berumur panjang atau sejumlah besar tugas (sejumlah besar pelaksana maksimum yang dibutuhkan) mendapat manfaat dari percepatan kinerja skala close-to-linear DPU.

Sebagaimana yang ditunjukkan gambar di atas, jumlah pelaksana aktif mencapai jumlah pelaksana maksimum yang dialokasikan—yakni, 107 pelaksana. Demikian pula, jumlah pelaksana maksimum yang dibutuhkan tidak pernah berada di atas jumlah maksimum pelaksana yang dialokasikan. Jumlah maksimum pelaksana yang dibutuhkan dihitung dari jumlah tugas yang aktif berjalan dan tertunda, sehingga mungkin lebih kecil dari jumlah pelaksana aktif. Hal ini karena dapat ada pelaksana yang sebagian atau seluruhnya menganggur dalam waktu singkat dan belum dinonaktifkan.

Eksekusi tugas ini menggunakan 6x pelaksana lebih untuk membaca dan menulis dari Amazon S3 secara paralel. Akibatnya, eksekusi tugas ini menggunakan lebih banyak bandwidth Amazon S3 untuk membaca dan menulis, dan selesai lebih cepat.
Identifikasi kelebihan DPUs
Selanjutnya, Anda dapat menentukan apakah menskalakan pekerjaan dengan 100 DPUs (99 * 2 = 198 pelaksana) membantu untuk meningkatkan skala lebih jauh. Seperti yang ditunjukkan dalam grafik berikut, tugas masih membutuhkan waktu tiga menit untuk selesai. Demikian pula, pekerjaan tidak melampaui 107 eksekutor (55 DPUs konfigurasi), dan 91 eksekutor sisanya dilebih-lebihkan dan tidak digunakan sama sekali. Ini menunjukkan bahwa peningkatan jumlah DPUs mungkin tidak selalu meningkatkan kinerja, sebagaimana terbukti dari pelaksana maksimum yang dibutuhkan.

Bandingkan perbedaan waktu
Tiga pekerjaan berjalan yang ditunjukkan dalam tabel berikut merangkum waktu pelaksanaan pekerjaan untuk 10 DPUs, 55 DPUs, dan 100 DPUs. Anda dapat menemukan bahwa kapasitas DPU untuk meningkatkan waktu pelaksanaan tugas menggunakan perkiraan yang Anda buat dengan memantau tugas pertama.
ID Tugas | Jumlah DPUs | Waktu eksekusi |
---|---|---|
jr_c894524c8ef5048a4d9... | 10 | 6 menit. |
jr_1a466cf2575e7ffe6856... | 55 | 3 menit. |
jr_34fa1ed4c6aa9ff0a814... | 100 | 3 menit. |