Metadata tampilan konsisten EMRFS - Amazon EMR

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

Metadata tampilan konsisten EMRFS

Tampilan konsisten EMRFS melacak konsistensi menggunakan tabel DynamoDB untuk melacak objek di Amazon S3 yang telah disinkronkan dengan atau dibuat melalui 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 memberi EMRFS kemampuan untuk memeriksa konsistensi daftar dan read-after-write konsistensi untuk objek baru yang ditulis EMRFS ke Amazon S3 atau objek yang disinkronkan dengan 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 Referensi Perintah CLI EMRFS.

Cara memeriksa perbedaan antara metadata dan objek di Amazon S3

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

Cara mengetahui apakah operasi metadata sedang dibatasi

EMRFS menetapkan batas kapasitas throughput default pada metadata untuk operasi baca dan tulisnya, yakni 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 mengeluarkan ProvisionedThroughputExceededException jika Anda melakukan operasi yang melebihi batas kapasitas ini. Setelah throttling, alat EMRFS CLI mencoba untuk mencoba menulis ulang ke tabel DynamoDB menggunakan mundur eksponensial hingga operasi selesai atau saat mencapai nilai percobaan ulang maksimum untuk menulis objek dari Amazon EMR ke Amazon S3.

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

Anda juga dapat melihat CloudWatch metrik Amazon untuk metadata EMRFS 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 EMRFS penting

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 yang berisi 1 objek) 43.31 0
listStatus (direktori yang berisi 10 objek) 44.34 0
listStatus (direktori yang berisi 100 objek) 84.44 0
listStatus (direktori yang berisi 1.000 objek) 308.81 0
listStatus (direktori yang berisi 10.000 objek) 416.05 0
listStatus (direktori yang berisi 100.000 objek) 823.56 0
listStatus (direktori yang berisi 1 Juta objek) 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 membersihkan entri tertentu secara manual atau terprogram dengan menggunakan subperintah delete CLI EMRFS. Namun, jika Anda menghapus entri dari metadata, EMRFS tidak lagi melakukan pemeriksaan konsistensi.

Pembersihan secara terprogram setelah tugas selesai dapat dilakukan dengan mengirimkan langkah terakhir ke cluster Anda, yang menjalankan perintah pada CLI EMRFS. 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.