EMRFSmetadata tampilan yang konsisten - Amazon EMR

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

EMRFSmetadata tampilan yang konsisten

EMRFStampilan konsisten melacak konsistensi menggunakan tabel DynamoDB untuk melacak objek di Amazon S3 yang telah disinkronkan dengan atau dibuat oleh. EMRFS Metadata digunakan untuk melacak semua operasi (baca, tulis, perbarui, dan salin), dan tidak ada konten aktual yang disimpan di dalamnya. Metadata ini digunakan untuk memvalidasi apakah objek atau metadata yang diterima dari Amazon S3 sesuai dengan yang diperkirakan. Konfirmasi ini memberikan EMRFS kemampuan untuk memeriksa konsistensi daftar dan read-after-write konsistensi untuk objek baru yang EMRFS ditulis ke Amazon S3 atau objek yang disinkronkan dengannya. EMRFS Beberapa klaster dapat berbagi metadata yang sama.

Cara menambahkan entri ke metadata

Anda dapat menggunakan subperintah sync atau import untuk menambahkan entri ke metadata. sync mencerminkan keadaan objek Amazon S3 di jalur, sedangkan import digunakan secara ketat untuk menambahkan entri baru ke metadata. Untuk informasi selengkapnya, lihat EMRFSCLIReferensi Perintah.

Cara memeriksa perbedaan antara metadata dan objek di Amazon S3

Untuk memeriksa perbedaan antara metadata dan Amazon S3, gunakan subperintah diff dari. EMRFS CLI Untuk informasi selengkapnya, lihat EMRFSCLIReferensi Perintah.

Cara mengetahui apakah operasi metadata sedang dibatasi

EMRFSmenetapkan batas kapasitas throughput default pada metadata untuk operasi baca dan tulis masing-masing pada 500 dan 100 unit. Sejumlah besar objek atau bucket dapat menyebabkan operasi melebihi kapasitas ini, di mana DynamoDB akan membatasi operasi. Misalnya, aplikasi dapat menyebabkan EMRFS melempar a ProvisionedThroughputExceededException jika Anda melakukan operasi yang melebihi batas kapasitas ini. Setelah throttling, EMRFS CLI alat mencoba untuk mencoba lagi menulis ke tabel DynamoDB menggunakan backoff eksponensial hingga operasi selesai atau ketika mencapai nilai coba ulang maksimum untuk menulis objek dari Amazon ke Amazon S3. EMR

Anda dapat mengonfigurasi batas kapasitas throughput Anda sendiri. Namun, DynamoDB memiliki batas partisi yang ketat yaitu 3000 unit kapasitas baca RCUs () dan 1000 unit kapasitas tulis WCUs () per detik untuk operasi baca dan tulis. Untuk menghindari sync kegagalan yang disebabkan oleh pelambatan, kami sarankan Anda membatasi throughput untuk operasi baca hingga kurang dari 3000 RCUs dan operasi tulis menjadi kurang dari 1000. WCUs Untuk petunjuk tentang menetapkan batas kapasitas throughput kustom, lihat Mengkonfigurasi tampilan yang konsisten.

Anda juga dapat melihat CloudWatch metrik Amazon untuk EMRFS metadata Anda di konsol DynamoDB tempat Anda dapat melihat jumlah permintaan baca dan tulis yang dibatasi. Jika Anda memiliki nilai bukan nol untuk permintaan yang dibatasi, aplikasi Anda berpotensi mendapat manfaat dari peningkatan kapasitas throughput yang dialokasikan untuk operasi baca atau tulis. Anda mungkin juga menyadari manfaat kinerja jika Anda melihat bahwa operasi Anda mendekati kapasitas throughput maksimum yang dialokasikan dalam membaca atau menulis untuk jangka waktu yang lama.

Karakteristik throughput untuk operasi penting EMRFS

Default untuk operasi baca dan tulis masing-masing adalah 400 dan 100 unit kapasitas throughput. Karakteristik kinerja berikut memberi Anda gambaran tentang throughput apa yang diperlukan untuk operasi tertentu. Uji ini dilakukan dengan menggunakan klaster m3.large simpul tunggal. Semua operasi menggunakan thread tunggal. Kinerja sangat berbeda berdasarkan karakteristik aplikasi tertentu dan mungkin diperlukan eksperimen untuk mengoptimalkan operasi sistem file.

Operasi Rata-rata read-per-second Rata-rata write-per-second
Buat (objek) 26.79 6.70
hapus (objek) 10.79 10.79
hapus (direktori yang berisi 1000 objek) 21,79 338.40
getFileStatus(objek) 34.70 0
getFileStatus(direktori) 19.96 0
listStatus(direktori berisi 1 objek) 43.31 0
listStatus(direktori berisi 10 objek) 44.34 0
listStatus(direktori berisi 100 objek) 84.44 0
listStatus(direktori berisi 1.000 objek) 308.81 0
listStatus(direktori berisi 10.000 objek) 416.05 0
listStatus(direktori berisi 100.000 objek) 823.56 0
listStatus(direktori yang berisi objek 1M) 882.36 0
mkdir (terus menerus selama 120 detik) 24.18 4.03
mkdir 12.59 0
ubah nama (objek) 19.53 4.88
ubah nama (direktori yang berisi 1000 objek) 23.22 339,34
Untuk mengirimkan langkah yang menghapus data lama dari penyimpanan metadata Anda

Pengguna mungkin ingin menghapus entri tertentu dalam metadata berbasis DynamoDB. Ini dapat membantu mengurangi biaya penyimpanan yang terkait dengan tabel. Pengguna memiliki kemampuan untuk secara manual atau terprogram membersihkan entri tertentu dengan menggunakan subperintah. EMRFS CLI delete Namun, jika Anda menghapus entri dari metadata, EMRFS tidak lagi memeriksa konsistensi.

Pembersihan terprogram setelah menyelesaikan pekerjaan dapat dilakukan dengan mengirimkan langkah terakhir ke cluster Anda, yang mengeksekusi perintah pada. EMRFS CLI Untuk instans, ketik perintah berikut untuk mengirimkan langkah ke klaster Anda untuk menghapus semua entri yang melebihi dua hari.

aws emr add-steps --cluster-id j-2AL4XXXXXX5T9 --steps Name="emrfsCLI",Jar="command-runner.jar",Args=["emrfs","delete","--time","2","--time-unit","days"] { "StepIds": [ "s-B12345678902" ] }

Gunakan StepId nilai yang dikembalikan untuk memeriksa log untuk hasil operasi.