View a markdown version of this page

EMR File System (EMRFS) - Amazon EMR

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

EMR File System (EMRFS)

catatan

Mulai dari rilis EMR 7.10.0, sistem file S3A telah menggantikan EMRFS sebagai konektor EMR S3 default.

Sistem File EMR (EMRFS) merupakan implementasi HDFS yang digunakan semua klaster Amazon EMR untuk membaca dan menulis file biasa dari Amazon EMR secara langsung ke Amazon S3. EMRFS memberikan kemudahan menyimpan data persisten di Amazon S3 untuk digunakan dengan Hadoop sambil juga menyediakan fitur seperti enkripsi data.

Enkripsi data memungkinkan Anda mengenkripsi objek yang ditulis EMRFS ke Amazon S3, dan memungkinkan EMRFS bekerja dengan objek yang terenkripsi di Amazon S3. Jika Anda menggunakan Amazon EMR rilis versi 4.8.0 atau yang lebih baru, Anda dapat menggunakan konfigurasi keamanan untuk mengatur enkripsi objek EMRFS di Amazon S3, bersama dengan setelan enkripsi lainnya. Untuk informasi selengkapnya, lihat Opsi enkripsi. Jika Anda menggunakan Amazon EMR versi rilis sebelumnya, Anda dapat mengonfigurasi pengaturan enkripsi secara manual. Untuk informasi selengkapnya, lihat Menentukan enkripsi Amazon S3 menggunakan properti EMRFS.

Amazon S3 menawarkan konsistensi penulisan baca-sesudah yang kuat untuk semua operasi GET, PUT, dan LIST di semua. Wilayah AWS Ini berarti bahwa apa yang Anda tulis menggunakan EMRFS adalah apa yang akan Anda baca dari Amazon S3, tanpa dampak pada kinerja. Untuk informasi selengkapnya, lihat Model konsistensi data Amazon S3.

Jika rilis Amazon EMR versi 5.10.0 atau yang lebih baru yang digunakan, Anda dapat menggunakan peran IAM yang berbeda untuk permintaan EMRFS ke Amazon S3 berdasarkan pengguna klaster, grup, atau lokasi data EMRFS di Amazon S3. Untuk informasi selengkapnya, lihat Meng onfigurasi peran IAM untuk permintaan EMRFS ke Amazon S3.

Awas

Sebelum mengaktifkan eksekusi spekulatif untuk klaster Amazon EMR yang menjalankan tugas Apache Spark, harap tinjau informasi berikut.

EMRFS menyertakan S3-optimized komitter EMRFS, OutputCommitter implementasi yang dioptimalkan untuk menulis file ke Amazon S3 saat menggunakan EMRFS. Jika Anda mengaktifkan fitur eksekusi spekulatif Apache Spark dengan aplikasi yang menulis data ke Amazon S3 dan tidak menggunakan komiter EMRFS, Anda S3-optimized mungkin mengalami masalah kebenaran data yang dijelaskan di. SPARK-10063 Hal ini dapat terjadi jika Anda menggunakan versi Amazon EMR lebih awal dari Amazon EMR rilis 5.19, atau jika Anda menulis file ke Amazon S3 dengan format seperti ORC dan CSV. Format ini tidak didukung oleh komiter EMRFS S3-optimized . Untuk daftar lengkap persyaratan untuk menggunakan komiter EMRFS, lihat Per S3-optimized syaratan untuk komitter EMRFS. S3-optimized

Penulisan langsung EMRFS biasanya digunakan ketika commit EMRFS tidak S3-optimized didukung, seperti saat menulis yang berikut:

Penulisan langsung EMRFS tidak digunakan dalam skenario berikut:

  • Ketika komit EMRFS di S3-optimized aktifkan. Lihat Per syaratan untuk Committer EMRFS S3-optimized.

  • Saat menulis partisi dinamis dengan partisi OverwriteMode diatur ke dinamis.

  • Saat menulis ke lokasi partisi kustom, seperti lokasi yang tidak sesuai dengan konvensi lokasi partisi default Hive.

  • Saat menggunakan sistem file selain EMRFS, seperti menulis ke HDFS atau menggunakan sistem file S3A.

Untuk menentukan apakah aplikasi Anda menggunakan penulisan langsung di Amazon EMR 5.14.0 atau yang lebih baru, aktifkan pencatatan log INFO Spark. Jika baris log yang berisi teks "Penulisan Langsung: DIAKTIFKAN" ada di log driver Spark atau log kontainer pelaksana Spark, maka aplikasi Spark Anda menulis menggunakan penulisan langsung.

Secara default, eksekusi spekulatif diaktifkan OFF pada Amazon EMRclusters. Kami sangat menyarankan Anda untuk tidak mengaktifkan eksekusi spekulatif jika kedua kondisi ini benar:

  • Anda sedang menulis data ke Amazon S3.

  • Data ditulis dalam format selain Apache Parquet atau dalam format Apache Parquet yang tidak menggunakan komitter EMRFS S3-optimized .

Jika Anda mengaktifkan eksekusi spekulatif Spark dan menulis data ke Amazon S3 menggunakan penulisan langsung EMRFS, Anda mungkin mengalami kehilangan data yang terputus-putus. Saat Anda menulis data ke HDFS, atau menulis data di Parquet menggunakan S3-optimized komitter EMRFS, Amazon EMR tidak menggunakan penulisan langsung dan masalah ini tidak terjadi.

Jika Anda perlu menulis data dalam format yang menggunakan penulisan langsung EMRFS dari Spark ke Amazon S3 dan menggunakan eksekusi spekulatif, sebaiknya tulis ke HDFS lalu transfer file output ke Amazon S3 dengan menggunakan S3DistCP.