View a markdown version of this page

Unggah data ke Amazon S3 Express One Zone - Amazon EMR

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

Unggah data ke Amazon S3 Express One Zone

Gambaran umum

Dengan Amazon EMR 6.15.0 dan yang lebih tinggi, Anda dapat menggunakan Amazon EMR dengan Apache Spark bersama dengan kelas penyimpanan Amazon S3 Express One Zone untuk meningkatkan kinerja pada pekerjaan Spark Anda. Amazon EMR merilis 7.2.0 dan yang lebih tinggi juga mendukung HBase, Flink, dan Hive, sehingga Anda juga dapat memanfaatkan S3 Express One Zone jika Anda menggunakan aplikasi ini. S3 Express One Zone adalah kelas penyimpanan S3 untuk aplikasi yang sering mengakses data dengan ratusan ribu permintaan per detik. Pada saat rilis, S3 Express One Zone memberikan latensi terendah dan penyimpanan objek cloud kinerja tertinggi di Amazon S3.

Prasyarat

  • Izin S3 Express One Zone — Ketika S3 Express One Zone awalnya melakukan tindakan seperti GETLIST,, atau PUT pada objek S3, kelas penyimpanan memanggil CreateSession atas nama Anda. Kebijakan IAM Anda harus mengiz s3express:CreateSession inkan izin sehingga S3A konektor dapat memanggil API. CreateSession Untuk contoh kebijakan dengan izin ini, lihatMemulai dengan Amazon S3 Express One Zone.

  • S3Akonektor — Untuk mengonfigurasi cluster Spark Anda untuk mengakses data dari bucket Amazon S3 yang menggunakan kelas penyimpanan S3 Express One Zone, Anda harus menggunakan konektor S3A Apache Hadoop. Untuk menggunakan konektor, pastikan semua URI S3 menggunakan s3a skema. Jika tidak, Anda dapat mengubah implementasi sistem file yang Anda gunakan untuk s3 dan s3n skema.

Untuk mengubah s3 skema, tentukan konfigurasi cluster berikut:

[ { "Classification": "core-site", "Properties": { "fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]

Untuk mengubah s3n skema, tentukan konfigurasi cluster berikut:

[ { "Classification": "core-site", "Properties": { "fs.s3n.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3n.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]

Memulai dengan Amazon S3 Express One Zone

Membuat kebijakan izin

Sebelum Anda dapat membuat cluster yang menggunakan Amazon S3 Express One Zone, Anda harus membuat kebijakan IAM untuk dilampirkan ke profil instans Amazon EC2 untuk cluster. Kebijakan harus memiliki izin untuk mengakses kelas penyimpanan S3 Express One Zone. Kebijakan contoh berikut menunjukkan cara memberikan izin yang diperlukan. Setelah Anda membuat kebijakan, lampirkan kebijakan ke peran profil instans yang Anda gunakan untuk membuat cluster EMR, seperti yang dijelaskan di Buat dan konfigurasikan cluster Anda bagian ini.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": [ "arn:aws:s3express:*:123456789012:bucket/example-s3-bucket" ], "Action": [ "s3express:CreateSession" ], "Sid": "AllowS3EXPRESSCreatesession" } ] }

Buat dan konfigurasikan cluster Anda

Selanjutnya, buat cluster yang menjalankan Spark, HBase, Flink, atau Hive dengan S3 Express One Zone. Langkah-langkah berikut menjelaskan ikhtisar tingkat tinggi untuk membuat cluster di Konsol Manajemen AWS:

  1. Arahkan ke konsol Amazon EMR dan pilih Cluster dari sidebar. Kemudian pilih Buat cluster.

  2. Jika Anda menggunakan Spark, pilih rilis Amazon EMR emr-6.15.0 atau yang lebih tinggi. Jika Anda menggunakan HBase, Flink, atau Hive, pilih emr-7.2.0 atau lebih tinggi.

  3. Pilih aplikasi yang ingin Anda sertakan di cluster Anda, seperti Spark, HBase, atau Flink.

  4. Untuk mengaktifkan Amazon S3 Express One Zone, masukkan konfigurasi yang mirip dengan contoh berikut di bagian Peng aturan perangkat lunak. Konfigurasi dan nilai yang direkomendasikan dijelaskan di Ikhtisar konfigurasi bagian yang mengikuti prosedur ini.

    [ { "Classification": "core-site", "Properties": { "fs.s3a.aws.credentials.provider": "software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider", "fs.s3a.change.detection.mode": "none", "fs.s3a.endpoint.region": "aa-example-1", "fs.s3a.select.enabled": "false" } }, { "Classification": "spark-defaults", "Properties": { "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false" } } ]
  5. Di bagian profil instans EC2 untuk Amazon EMR, pilih untuk menggunakan peran yang ada, dan gunakan peran dengan kebijakan terlampir yang Anda buat di Membuat kebijakan izin bagian di atas.

  6. Konfigurasikan setelan cluster lainnya sesuai untuk aplikasi Anda, lalu pilih Buat cluster.

Ikhtisar konfigurasi

Tabel berikut menjelaskan konfigurasi dan nilai yang disarankan yang harus Anda tentukan saat menyiapkan cluster yang menggunakan S3 Express One Zone dengan Amazon EMR, seperti yang dijelaskan di Buat dan konfigurasikan cluster Anda bagian ini.

S3Akonfigurasi

Parameter Nilai default Nilai yang disarankan Penjelasan

fs.s3a.aws.credentials.provider

Jika tidak ditentukan, gunakan AWSCredentialProviderList dalam urutan sebagai berikut:TemporaryAWSCredentialsProvider,SimpleAWSCredentialsProvider,EnvironmentVariableCredentialsProvider,IAMInstanceCredentialsProvider.

software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider

Peran profil instans Amazon EMR harus memiliki kebijakan yang memungkinkan S3A sistem file untuk memanggil. s3express:CreateSession Penyedia crendential lainnya juga berfungsi jika mereka memiliki izin S3 Express One Zone.

fs.s3a.endpoint.region

null

Wilayah AWS Tempat Anda membuat ember.

Logika resolusi wilayah tidak berfungsi dengan kelas penyimpanan S3 Express One Zone.

fs.s3a.select.enabled

true

false

Amazon S3 select tidak didukung dengan kelas penyimpanan S3 Express One Zone.

fs.s3a.change.detection.mode

server

none

Deteksi perubahan dengan S3A karya dengan memeriksa MD5 berbasisetags. Kelas penyimpanan S3 Express One Zone tidak mendukung MD5checksums.

Sparkkonfigurasi

Parameter Nilai default Nilai yang disarankan Penjelasan

spark.sql.sources.fastS3PartitionDiscovery.enabled

true

false

Pengoptimalan internal menggunakan parameter API S3 yang tidak didukung oleh kelas penyimpanan S3 Express One Zone.

Hivekonfigurasi

Parameter Nilai default Nilai yang disarankan Penjelasan

hive.exec.fast.s3.partition.discovery.enabled

true

false

Pengoptimalan internal menggunakan parameter API S3 yang tidak didukung oleh kelas penyimpanan S3 Express One Zone.

Pertimbangan-pertimbangan

Pertimbangkan hal berikut saat Anda mengintegrasikan Apache Spark di Amazon EMR dengan kelas penyimpanan S3 Express One Zone:

  • Konektor S3A diperlukan untuk menggunakan S3 Express One Zone dengan Amazon EMR. Hanya S3A yang memiliki fitur dan kelas penyimpanan yang diperlukan untuk berinteraksi dengan S3 Express One Zone. Untuk langkah-langkah untuk mengatur konektor, lihatPrasyarat.

  • Kelas penyimpanan Amazon S3 Express One Zone mendukung SSE-S3 dan SSE-KMS enkripsi. Untuk informasi selengkapnya, lihat Server-side enkripsi dengan Amazon S3.

  • Kelas penyimpanan Amazon S3 Express One Zone tidak mendukung penulisan dengan S3AFileOutputCommitter. Menulis dengan S3A FileOutputCommitter pada bucket S3 Express One Zone menghasilkan kesalahan: InvalidStorageClass: The storage class you specified is not valid.

  • Amazon S3 Express One Zone didukung dengan rilis Amazon EMR 6.15.0 dan yang lebih tinggi pada EMR di EC2. Selain itu, ini didukung di Amazon EMR rilis 7.2.0 dan lebih tinggi di Amazon EMR di EKS dan di Amazon EMR Serverless.