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)

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 dalam menyimpan data persisten di Amazon S3 untuk digunakan dengan Hadoop sekaligus 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 rilis Amazon EMR versi 4.8.0 atau yang lebih baru, Anda dapat menggunakan konfigurasi keamanan untuk menyiapkan enkripsi bagi objek EMRFS di Amazon S3, beserta pengaturan 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 baca-setelah menulis yang kuat untuk semua operasi GET, PUT, dan LIST di semuaWilayah 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 Mengkonfigurasi 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 committer yang dioptimalkan untuk EMRFS S3, 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 committer yang dioptimalkan untuj EMRFS S3, Anda mungkin mengalami masalah kebenaran data yang dideskripsikan di SPARK-10063. Ini dapat terjadi jika Anda menggunakan Amazon EMR versi lebih lama dari rilis EMR 5.19, atau jika Anda menulis file ke Amazon S3 menggunakan format seperti ORC dan CSV, yang tidak didukung oleh committer yang dioptimalkan untuk EMRFS S3. Untuk daftar lengkap mengenai persyaratan untuk menggunakan committer yang dioptimalkan untuk EMRFS S3, lihat Persyaratan untuk committer yang dioptimalkan untuk EMRFS S3.

Penulisan langsung dari EMRFS biasanya digunakan saat committer yang dioptimalkan untuk EMRFS S3 tidak didukung, seperti saat menulis berikut ini:

Penulisan langsung EMRFS tidak digunakan dalam skenario berikut:

  • Saat committer yang dioptimalkan untuk EMRFS S3 diaktifkan. Lihat Persyaratan untuk committer yang dioptimalkan untuk EMRFS S3.

  • Saat menulis partisi dinamis dengan partitionOverwriteMode set 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 “Direct Write: 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 Paruqet Apache atau dalam format Paruqet Apache yang tidak menggunakan committer yang dioptimalkan untuk EMRFS S3.

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 committer yang dioptimalkan untuk EMRFS S3, 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.