Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cara menulis data ke ember Amazon S3 yang tidak Anda miliki dengan Amazon EMR
Saat Anda menulis file ke bucket Amazon Simple Storage Service (Amazon S3), secara default, hanya Anda yang dapat membaca file tersebut. Asumsinya adalah bahwa Anda akan menulis file ke bucket Anda sendiri, dan pengaturan default ini melindungi privasi file Anda.
Namun, jika Anda menjalankan cluster, dan Anda ingin output menulis ke bucket Amazon S3 dari AWS pengguna lain, dan Anda ingin AWS pengguna lain dapat membaca output itu, Anda harus melakukan dua hal:
-
Mintalah AWS pengguna lain memberi Anda izin menulis untuk bucket Amazon S3 mereka. Cluster yang Anda luncurkan berjalan di bawah AWS kredensyal Anda, sehingga setiap cluster yang Anda luncurkan juga akan dapat menulis ke bucket AWS pengguna lain tersebut.
-
Setel izin baca untuk AWS pengguna lain pada file yang Anda atau klaster tulis ke bucket Amazon S3. Cara termudah untuk menyetel izin baca ini adalah dengan menggunakan canned access control lists (ACLs), satu set kebijakan akses yang telah ditentukan sebelumnya yang ditentukan oleh Amazon S3.
Untuk informasi tentang cara AWS pengguna lain dapat memberi Anda izin untuk menulis file ke bucket Amazon S3 pengguna lain, lihat Mengedit izin bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
Agar klaster Anda dapat menggunakan kaleng ACLs saat menulis file ke Amazon S3, setel opsi konfigurasi fs.s3.canned.acl
cluster ke ACL kalengan untuk digunakan. Tabel berikut mencantumkan kaleng yang didefinisikan saat ini ACLs.
ACL Terekam | Deskripsi |
---|---|
AuthenticatedRead |
Menentukan bahwa pemilik diberikan Permission.FullControl dan penerima grup GroupGrantee.AuthenticatedUsers diberikan akses Permission.Read . |
BucketOwnerFullControl |
Menentukan bahwa pemilik bucket diberikan Permission.FullControl . Pemilik bucket belum tentu sama dengan pemilik objek. |
BucketOwnerRead |
Menentukan bahwa pemilik bucket diberikan Permission.Read . Pemilik bucket belum tentu sama dengan pemilik objek. |
LogDeliveryWrite |
Menentukan bahwa pemilik diberikan Permission.FullControl dan penerima grup GroupGrantee.LogDelivery diberikan akses Permission.Write , sehingga log akses dapat dikirim. |
Private |
Menentukan bahwa pemilik diberikan Permission.FullControl . |
PublicRead |
Menentukan bahwa pemilik diberikanPermission.FullControl dan penerima grup GroupGrantee.AllUsers diberikan akses Permission.Read . |
PublicReadWrite |
Menentukan bahwa pemilik diberikan Permission.FullControl dan penerima grup GroupGrantee.AllUsers diberikan Permission.Read dan akses Permission.Write . |
Terdapat berbagai cara untuk mengatur opsi konfigurasi klaster, tergantung pada jenis klaster yang Anda jalankan. Prosedur berikut menunjukkan cara mengatur opsi untuk kasus umum.
Untuk menulis file menggunakan kaleng ACLs di Hive
-
Dari prompt perintah Hive, atur opsi konfigurasi
fs.s3.canned.acl
ke ACL terekam yang Anda inginkan agar klaster diatur pada file yang ditulisnya ke Amazon S3. Untuk mengakses prompt perintah Hive, sambungkan ke simpul utama menggunakan SSH, dan ketik Hive di prompt perintah Hadoop. Untuk informasi selengkapnya, lihat Connect ke node primer Amazon EMR cluster menggunakan SSH.Contoh berikut mengatur opsi konfigurasi
fs.s3.canned.acl
keBucketOwnerFullControl
, yang memberi pemilik bucket Amazon S3 kendali penuh atas file tersebut. Perhatikan bahwa perintah set peka terhadap huruf besar-kecil dan tidak mengandung tanda kutip atau spasi.hive> set fs.s3.canned.acl=BucketOwnerFullControl; create table acl (n int) location 's3://amzn-s3-demo-bucket/acl/'; insert overwrite table acl select count(*) from acl;
Dua baris terakhir dari contoh membuat tabel yang disimpan di Amazon S3 dan menulis data ke tabel.
Untuk menulis file menggunakan kaleng ACLs di Babi
-
Dari prompt perintah Pig, atur opsi konfigurasi
fs.s3.canned.acl
ke ACL terekam yang Anda inginkan agar klaster diatur pada file yang ditulisnya ke Amazon S3. Untuk mengakses prompt perintah Pig, sambungkan ke simpul utama menggunakan SSH, dan ketik Pig pada prompt perintah Hadoop. Untuk informasi selengkapnya, lihat Connect ke node primer Amazon EMR cluster menggunakan SSH.Contoh berikut menyetel opsi
fs.s3.canned.acl
konfigurasi BucketOwnerFullControl, yang memberi pemilik bucket Amazon S3 kontrol penuh atas file tersebut. Perhatikan bahwa perintah set menyertakan satu spasi sebelum nama ACL terekam dan tidak berisi tanda kutip.pig> set fs.s3.canned.acl BucketOwnerFullControl; store some data into 's3://amzn-s3-demo-bucket/pig/acl';
Untuk menulis file menggunakan kaleng ACLs dalam JAR khusus
-
Atur opsi konfigurasi
fs.s3.canned.acl
menggunakan Hadoop dengan menggunakan bendera -D. Ini ditunjukkan dalam contoh di bawah.hadoop jar hadoop-examples.jar wordcount -Dfs.s3.canned.acl=BucketOwnerFullControl s3://amzn-s3-demo-bucket/input s3://amzn-s3-demo-bucket/output