Mengunggah data ke Amazon S3 - Amazon EMR

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

Mengunggah data ke Amazon S3

Untuk informasi tentang cara mengunggah objek ke Amazon S3, lihat Menambahkan objek ke bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Untuk informasi selengkapnya tentang menggunakan Amazon S3 dengan Hadoop, lihat http://wiki.apache.org/hadoop/AmazonS3.

Buat dan konfigurasikan bucket Amazon S3

Amazon EMR menggunakan Amazon S3 untuk menyimpan data input, file log, dan data output. AWS SDK for Java Amazon S3 mengacu pada lokasi penyimpanan ini sebagai bucket. Bucket memiliki batasan dan batasan tertentu agar sesuai dengan Amazon DNS S3 dan persyaratan. Untuk informasi selengkapnya, lihat Pembatasan dan batasan bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Bagian ini menunjukkan cara menggunakan Amazon S3 AWS Management Console untuk membuat dan kemudian mengatur izin untuk bucket Amazon S3. Anda juga dapat membuat dan menyetel izin untuk bucket Amazon S3 menggunakan Amazon S3 atau. API AWS CLI Anda juga bisa menggunakan curl bersama dengan modifikasi untuk meneruskan parameter autentikasi yang sesuai bagi Amazon S3.

Lihat sumber daya berikut:

catatan

Jika Anda mengaktifkan pencatatan untuk bucket, ini hanya mengaktifkan log akses bucket, bukan log EMR klaster Amazon.

Selama pembuatan bucket atau setelahnya, Anda dapat mengatur izin yang sesuai untuk mengakses bucket, bergantung pada aplikasi Anda. Biasanya, Anda memberi diri Anda (pemilik) akses baca dan tulis dan memberi akses baca untuk pengguna yang diautentikasi.

Bucket Amazon S3 yang diperlukan harus ada sebelum Anda dapat membuat klaster. Anda harus mengunggah skrip atau data yang diperlukan yang dimaksud dalam klaster ke Amazon S3. Tabel berikut menjelaskan contoh data, skrip, dan lokasi berkas log.

Mengonfigurasi unggahan multipart untuk Amazon S3

Amazon EMR mendukung unggahan multipart Amazon S3 melalui untuk Java. AWS SDK Unggahan multipart memungkinkan Anda mengunggah satu objek ke dalam beberapa bagian. Anda dapat mengunggah bagian-bagian objek tersebut secara independen dan dengan urutan apa pun. Jika ada transmisi bagian mana pun yang gagal, Anda dapat mentransmisikan ulang bagian tersebut tanpa memengaruhi bagian lainnya. Setelah semua bagian objek Anda diunggah, Amazon S3 merakit bagian-bagian tersebut dan menciptakan objek.

Untuk informasi selengkapnya, lihat Ikhtisar unggahan multibagian di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Selain itu, Amazon EMR menawarkan properti yang memungkinkan Anda mengontrol pembersihan bagian unggahan multibagian yang gagal dengan lebih tepat.

Tabel berikut menjelaskan properti EMR konfigurasi Amazon untuk upload multipart. Anda dapat mengonfigurasi core-site menggunakan klasifikasi konfigurasi. Untuk informasi selengkapnya, lihat Mengonfigurasi aplikasi di Panduan EMR Rilis Amazon.

Nama parameter konfigurasi Nilai default Deskripsi
fs.s3n.multipart.uploads.enabled true Jenis Boolean yang menunjukkan apakah akan mengaktifkan unggahan multipart. Saat tampilan EMRFS konsisten diaktifkan, unggahan multibagian diaktifkan secara default dan pengaturan nilai ini diabaikanfalse.
fs.s3n.multipart.uploads.split.size 134217728

Menentukan ukuran maksimum bagian, dalam byte, sebelum EMRFS memulai upload bagian baru ketika upload multipart diaktifkan. Nilai minimumnya adalah 5242880 (5 MB). Jika nilai yang lebih rendah ditentukan, 5242880 digunakan. Maksimumnya adalah 5368709120 (5 GB). Jika nilai yang lebih besar ditentukan, 5368709120 digunakan.

Jika enkripsi EMRFS sisi klien dinonaktifkan dan Amazon S3 Optimized Committer juga dinonaktifkan, nilai ini juga mengontrol ukuran maksimum file data yang dapat tumbuh EMRFS hingga menggunakan unggahan multibagian daripada PutObject permintaan untuk mengunggah file. Untuk informasi selengkapnya, silakan lihat

fs.s3n.ssl.enabled true Jenis Boolean yang menunjukkan apakah akan menggunakan http atau https.
fs.s3.buckets.create.enabled false Jenis Boolean yang menunjukkan apakah bucket harus dibuat jika tidak ada. Mengatur ke false menyebabkan pengecualian pada CreateBucket operasi.
fs.s3.multipart.clean.enabled false Jenis Boolean yang menunjukkan apakah akan mengaktifkan pembersihan berkala latar belakang dari unggahan multipart yang tidak lengkap.
fs.s3.multipart.clean.age.threshold 604800 Jenis panjang yang menentukan usia minimum dari unggahan multipart, dalam hitungan detik, sebelum dipertimbangkan untuk dibersihkan. Default adalah satu minggu.
fs.s3.multipart.clean.jitter.max 10000 Jenis integer yang menentukan jumlah maksimum penundaan jitter acak dalam detik yang ditambahkan ke penundaan tetap 15 menit sebelum menjadwalkan putaran pembersihan berikutnya.

Nonaktifkan unggahan multipart

Console
Untuk menonaktifkan unggahan multibagian dengan konsol
  1. Masuk ke AWS Management Console, dan buka EMR konsol Amazon di https://console.aws.amazon.com/emr.

  2. Di bawah EMREC2di panel navigasi kiri, pilih Clusters, lalu pilih Create cluster.

  3. Di bawah Pengaturan perangkat lunak, masukkan konfigurasi berikut:classification=core-site,properties=[fs.s3n.multipart.uploads.enabled=false].

  4. Pilih opsi lain yang berlaku untuk cluster Anda.

  5. Untuk meluncurkan klaster Anda, pilih Buat klaster.

CLI
Untuk menonaktifkan unggahan multipart menggunakan AWS CLI

Prosedur ini menjelaskan cara menonaktifkan unggahan multipart dengan menggunakan file AWS CLI. Untuk menonaktifkan unggahan multipart, ketik perintah create-cluster dengan parameter --bootstrap-actions.

  1. Buat file, myConfig.json, dengan konten berikut kemudian simpan di direktori yang sama di mana Anda menjalankan perintah:

    [ { "Classification": "core-site", "Properties": { "fs.s3n.multipart.uploads.enabled": "false" } } ]
  2. Ketik perintah berikut dan ganti myKey dengan nama EC2 key pair Anda.

    catatan

    Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).

    aws emr create-cluster --name "Test cluster" \ --release-label emr-7.2.0 --applications Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --configurations file://myConfig.json
API
Untuk menonaktifkan unggahan multipart menggunakan API

Praktik terbaik

Berikut ini adalah rekomendasi untuk menggunakan bucket Amazon S3 dengan cluster. EMR

Aktifkan versioning

Versioning adalah konfigurasi yang direkomendasikan untuk bucket Amazon S3. Dengan mengaktifkan versioning, dapat dipastikan bahwa jika data Anda tidak sengaja dihapus atau ditimpa, data tersebut masih dapat dipulihkan. Untuk informasi selengkapnya, lihat Menggunakan versi di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Bersihkan unggahan multipart yang gagal

EMRkomponen cluster menggunakan unggahan multipart melalui AWS SDK untuk Java dengan Amazon APIs S3 untuk menulis file log dan data output ke Amazon S3 secara default. Untuk informasi tentang mengubah properti yang terkait dengan konfigurasi ini menggunakan AmazonEMR, lihatMengonfigurasi unggahan multipart untuk Amazon S3. Terkadang unggahan file besar dapat mengakibatkan unggahan multipart Amazon S3 menjadi tidak lengkap. Jika unggahan multipart tidak berhasil diselesaikan, unggahan multipart yang sedang berlangsung akan terus menempati bucket Anda dan menimbulkan biaya penyimpanan. Kami merekomendasikan opsi berikut untuk menghindari penyimpanan file yang berlebihan:

  • Untuk bucket yang Anda gunakan dengan AmazonEMR, gunakan aturan konfigurasi siklus hidup di Amazon S3 untuk menghapus unggahan multibagian yang tidak lengkap tiga hari setelah tanggal inisiasi upload. Aturan konfigurasi siklus hidup memungkinkan Anda mengontrol kelas penyimpanan dan masa pakai objek. Untuk informasi selengkapnya, lihat Manajemen siklus hidup objek, dan Membatalkan unggahan multipart yang tidak lengkap menggunakan kebijakan siklus hidup bucket.

  • Aktifkan fitur pembersihan multipart Amazon EMR dengan menyetel true dan fs.s3.multipart.clean.enabled menyetel parameter pembersihan lainnya. Fitur ini berguna pada volume tinggi, skala besar, dan klaster yang memiliki waktu aktif terbatas. Dalam hal ini, parameter DaysAfterIntitiation dari aturan konfigurasi siklus hidup mungkin terlalu panjang, bahkan jika diatur ke minimum, yang menyebabkan lonjakan penyimpanan Amazon S3. Pembersihan multipart Amazon EMR memungkinkan kontrol yang lebih presisi. Untuk informasi selengkapnya, lihat Mengonfigurasi unggahan multipart untuk Amazon S3.

Mengelola penanda versi

Sebaiknya aktifkan aturan konfigurasi siklus hidup di Amazon S3 untuk menghapus penanda penghapusan objek kedaluwarsa untuk bucket berversi yang Anda gunakan dengan Amazon. EMR Saat menghapus objek dalam bucket berversi, delete marker akan dibuat. Jika semua versi objek sebelumnya kemudian kedaluwarsa, delete marker objek yang kedaluwarsa akan tertinggal di bucket. Meskipun Anda tidak dikenakan biaya untuk menghapus penanda, menghapus penanda kedaluwarsa dapat meningkatkan kinerja permintaan. LIST Untuk informasi selengkapnya, lihat Konfigurasi Siklus Hidup untuk bucket dengan pembuatan versi di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Praktik terbaik kinerja

Bergantung pada beban kerja Anda, jenis penggunaan EMR klaster dan aplikasi tertentu pada klaster tersebut dapat menghasilkan jumlah permintaan yang tinggi terhadap bucket. Untuk informasi selengkapnya, lihat Pertimbangan tingkat permintaan dan performa di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.