S3A MagicV2 Committer - Amazon EMR

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

S3A MagicV2 Committer

Dengan rilis EMR-6.15.0, Amazon EMR memperkenalkan tipe committer S3A baru yang dikenal sebagai komite MagicV2. Untuk informasi lengkap tentang fitur ini, silakan lihat bagian dokumentasi yang relevan.

MagicV2 Committer mewakili implementasi yang disempurnakan dari open-source MagicCommitter, yang dirancang khusus untuk mengoptimalkan penulisan file ke Amazon S3 melalui sistem file S3A. Seperti pendahulunya, ia memanfaatkan kemampuan upload multipart Amazon S3 untuk menghilangkan daftar tradisional dan mengganti nama operasi yang biasanya terkait dengan fase job dan task commit.

Dibandingkan dengan aslinya MagicCommitter, komite MagicV2 menunjukkan kinerja yang unggul dengan menulis file ke lokasi output pekerjaan selama fase komit tugas, bukan fase komit pekerjaan. Pendekatan ini memungkinkan penulisan file terdistribusi dan menghilangkan kebutuhan akan penyimpanan metadata komit sementara di Amazon S3, sehingga meningkatkan efektivitas biaya. Selain itu, committer MagicV2 memberikan fleksibilitas yang ditingkatkan dengan mengizinkan penimpaan jalur file di beberapa utas selama proses komit.

Aktifkan Komitter MagicV2

Untuk mengaktifkan MagicV2 committer, teruskan konfigurasi berikut dalam konfigurasi pekerjaan Anda atau gunakan konfigurasi core-site untuk menyetel properti. Untuk informasi selengkapnya, lihat Mengkonfigurasi aplikasi.

mapreduce.outputcommitter.factory.scheme.s3a=org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory fs.s3a.committer.magic.enabled=true fs.s3a.committer.name=magicv2 fs.s3a.committer.magic.track.commits.in.memory.enabled=true

Untuk beban kerja yang memerlukan penimpaan direktori yang ada sebelum melakukan atau menulis file baru, konfigurasi tambahan berikut diperlukan, bersama dengan konfigurasi yang disebutkan sebelumnya.

fs.s3a.committer.magic.overwrite.and.commit=true fs.s3a.committer.magic.delete.directory.threads=thread size

Nilai default untuk threads konfigurasi adalah20. Namun, parameter ini harus disetel ketika ada sejumlah besar direktori yang akan ditimpa untuk kinerja yang lebih baik. Ini hanya tersedia di EMR-7.2.0 dan di atasnya.

Pertimbangan

  • Jika Java Virtual Machine (JVM) mogok atau dimatikan saat tugas berjalan dan menulis data ke Amazon S3, unggahan multipart yang tidak lengkap kemungkinan akan tertinggal. Untuk alasan ini, ketika Anda menggunakan MagicV2 committer, pastikan untuk mengikuti praktik terbaik untuk mengelola unggahan multipart yang gagal. Untuk informasi selengkapnya, lihat bagian Praktik terbaik untuk bekerja dengan bucket Amazon S3 di Panduan Manajemen EMR Amazon.

  • Jika pekerjaan gagal, file apa pun yang dilakukan oleh tugas yang berhasil akan tetap terlihat di jalur tujuan. Dalam kasus seperti itu, pengguna perlu membersihkan file yang dikomit secara manual sebelum menjalankan kembali pekerjaan di jalur tujuan yang sama.

  • Komitter MagicV2 mengkonsumsi sejumlah kecil memori untuk setiap file yang ditulis oleh upaya tugas sampai tugas dilakukan atau dibatalkan. Dalam sebagian besar pekerjaan, jumlah memori yang dikonsumsi dapat diabaikan. Namun, dalam beberapa kasus di mana proses pelaksana tunggal menangani sejumlah besar tugas secara bersamaan, itu dapat menempatkan banyak tekanan memori, dan wadah atau pelaksana mungkin kehabisan memori (OOM). Meningkatkan wadah atau memori pelaksana akan menyelesaikan masalah ini.