View a markdown version of this page

Menyimpan data Spark shuffle - AWS Lem

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

Menyimpan data Spark shuffle

Shuffling adalah langkah penting dalam pekerjaan Spark setiap kali data diatur ulang antar partisi. Ini diperlukan karena transformasi luas sepertijoin,, groupByKeyreduceByKey, dan repartition memerlukan informasi dari partisi lain untuk menyelesaikan pemrosesan. Spark mengumpulkan data yang diperlukan dari setiap partisi dan menggabungkannya ke dalam partisi baru. Selama shuffle, data ditulis ke disk dan ditransfer ke seluruh jaringan. Akibatnya, operasi shuffle terikat pada kapasitas disk lokal. Spark melempar MetadataFetchFailedException kesalahan No space left on device atau ketika tidak ada cukup ruang disk yang tersisa pada eksekutor dan tidak ada pemulihan.

catatan

AWS Glue Plugin Spark shuffle dengan Amazon S3 hanya didukung untuk pekerjaan AWS Glue ETL.

Solusi

DenganAWS Glue, Anda sekarang dapat menggunakan Amazon S3 untuk menyimpan data shuffle Spark menggunakan Plugin Penyimpanan Cloud Shuffle. Amazon S3 adalah layanan penyimpanan objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja terdepan di industri. Solusi ini memisahkan komputasi dan penyimpanan untuk pekerjaan Spark Anda, dan memberikan elastisitas lengkap dan penyimpanan shuffle berbiaya rendah, memungkinkan Anda menjalankan beban kerja yang paling intensif dengan andal.

Spark Map Stage menulis ke disk, mengacak data ke S3, lalu Spark Reduce Stage membaca dari S3.

Anda dapat mengaktifkan pengocokan Amazon S3 untuk menjalankan tugas AWS Glue dengan andal tanpa kegagalan jika diketahui terikat oleh kapasitas disk lokal untuk operasi pengocokan besar. Dalam beberapa kasus, mengacak ke Amazon S3 sedikit lebih lambat daripada disk lokal (atau EBS) jika Anda memiliki sejumlah besar partisi kecil atau file shuffle yang ditulis ke Amazon S3.

Prasyarat untuk menggunakan Plugin Penyimpanan Cloud Shuffle

Untuk menggunakan Cloud Shuffle Storage Plugin dengan pekerjaan AWS Glue ETL, Anda memerlukan yang berikut:

  • Bucket Amazon S3 yang terletak di wilayah yang sama dengan job run Anda, untuk menyimpan shuffle perantara dan data yang tumpah. Awalan Amazon S3 dari penyimpanan shuffle dapat ditentukan dengan--conf spark.shuffle.glue.s3ShuffleBucket=s3://shuffle-bucket/prefix/, seperti pada contoh berikut:

    --conf spark.shuffle.glue.s3ShuffleBucket=s3://glue-shuffle-123456789-us-east-1/glue-shuffle-data/
  • Tetapkan kebijakan siklus hidup penyimpanan Amazon S3 pada awalan (sepertiglue-shuffle-data) karena pengelola shuffle tidak membersihkan file setelah pekerjaan selesai. Shuffle perantara dan data yang tumpah harus dihapus setelah pekerjaan selesai. Pengguna dapat menetapkan kebijakan siklus hidup singkat pada awalan. Petunjuk untuk menyiapkan kebijakan siklus hidup Amazon S3 tersedia di Menyetel konfigurasi siklus hidup pada bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Penggunaan AWS Glue Manajer shuffle Spark dari AWS konsol

Untuk mengatur pengelola shuffle S AWS Glue park menggunakan AWS Glue konsol atau AWS Glue Studio saat mengonfigurasi pekerjaan: pilih parameter tugas --write-shuffle-files-to-s3 untuk mengaktifkan pengocokan Amazon S3 untuk pekerjaan tersebut.

Bagian parameter pekerjaan menunjukkan kunci write-shuffle-files dengan bidang nilai opsional dan tombol Hapus.

Penggunaan AWS Glue Plugin Spark shuffle

Parameter pekerjaan berikut menghidupkan dan menyetel manajer AWS Glue shuffle. Parameter ini adalah flag, jadi nilai apa pun yang diberikan tidak dipertimbangkan.

penting

Untuk menonaktifkan pengocokan Amazon S3, Anda harus menghapus --write-shuffle-files-to-s3 parameter sepenuhnya dari konfigurasi pekerjaan Anda. Menyetel nilai ke false tidak menonaktifkan pengocokan Amazon S3 — parameter bertindak sebagai tanda berbasis kehadiran, yang berarti bahwa nilai apa pun (termasukfalse) mengaktifkan pengocokan Amazon S3 saat parameter hadir.

  • --write-shuffle-files-to-s3— Bendera utama, yang memungkinkan pengelola shuffle S AWS Glue park menggunakan bucket Amazon S3 untuk menulis dan membaca data shuffle. Ketika bendera tidak ditentukan, pengelola shuffle tidak digunakan.

  • --write-shuffle-spills-to-s3- (Didukung hanya pada AWS Glue versi 2.0). Bendera opsional yang memungkinkan Anda memindahkan file tumpahan ke bucket Amazon S3, yang memberikan ketahanan tambahan untuk pekerjaan Spark Anda. Ini hanya diperlukan untuk beban kerja besar yang menumpahkan banyak data ke disk. Ketika bendera tidak ditentukan, tidak ada file tumpahan perantara yang ditulis.

  • --conf spark.shuffle.glue.s3ShuffleBucket=s3://<shuffle-bucket>— Bendera opsional lain yang menentukan bucket Amazon S3 tempat Anda menulis file shuffle. Secara default, --TempDir /shuffle-data. AWS Glue 3.0+ mendukung penulisan file shuffle ke beberapa bucket dengan menentukan bucket dengan pembatas koma, seperti pada. --conf spark.shuffle.glue.s3ShuffleBucket=s3://shuffle-bucket-1/prefix,s3://shuffle-bucket-2/prefix/ Menggunakan beberapa bucket meningkatkan kinerja.

Anda perlu menyediakan pengaturan konfigurasi keamanan untuk mengaktifkan enkripsi diam untuk data shuffle. Untuk informasi selengkapnya tentang konfigurasi keamanan, lihatMenyiapkan enkripsi di AWS Glue. AWS Gluemendukung semua konfigurasi terkait shuffle lainnya yang disediakan oleh Spark.

Biner perangkat lunak untuk plugin Cloud Shuffle Storage

Anda juga dapat mengunduh binari perangkat lunak dari Cloud Shuffle Storage Plugin untuk Apache Spark di bawah lisensi Apache 2.0 dan menjalankannya di lingkungan Spark apa pun. Plugin baru ini dilengkapi dengan dukungan out-the box untuk Amazon S3, dan juga dapat dengan mudah dikonfigurasi untuk menggunakan bentuk penyimpanan cloud lainnya seperti Google Cloud Storage dan Microsoft Azure Blob Storage. Untuk informasi selengkapnya, lihat Plugin Penyimpanan Cloud Shuffle untuk Apache Spark.

Catatan dan batasan

Berikut ini adalah catatan atau batasan untuk pengelola AWS Glue shuffle:

  • AWS Glue shuffle manager tidak secara otomatis menghapus file data shuffle (sementara) yang disimpan di bucket Amazon S3 Anda setelah pekerjaan selesai. Untuk memastikan perlindungan data, ikuti instruksi Prasyarat untuk menggunakan Plugin Penyimpanan Cloud Shuffle sebelum mengaktifkan Plugin Penyimpanan Cloud Shuffle.

  • Anda dapat menggunakan fitur ini jika data Anda miring.