Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Amazon EMR (sebelumnya disebut Amazon Elastic MapReduce) adalah platform cluster terkelola yang menyederhanakan menjalankan kerangka kerja data besar, seperti Apache Hadoop and Apache Spark, AWS untuk memproses dan menganalisis sejumlah besar data. Dengan menggunakan kerangka kerja ini dan proyek sumber terbuka terkait, Anda dapat memproses data untuk tujuan analitik dan beban kerja intelijen bisnis. Amazon EMR juga memungkinkan Anda mengubah dan memindahkan sejumlah besar data ke dalam dan keluar dari penyimpanan AWS data dan database lainnya.
Anda dapat menggunakan Apache Iceberg cluster di Amazon EMR untuk bekerja dengan tabel S3 dengan menghubungkan ke bucket tabel di a Spark sesi. Untuk menyambung ke bucket tabel di Amazon EMR, Anda dapat menggunakan AWS integrasi layanan analitik AWS Glue Data Catalog melalui, atau Anda dapat menggunakan Katalog Tabel Amazon S3 open source untuk Apache Iceberg katalog klien.
catatan
Tabel S3 didukung di Amazon EMR versi 7.5 atau lebih tinggi.
Menghubungkan ke ember meja S3 dengan Spark pada EMR Amazon Iceberg cluster
Dalam prosedur ini, Anda menyiapkan kluster EMR Amazon yang dikonfigurasi Apache Iceberg dan kemudian meluncurkan Spark sesi yang terhubung ke ember meja Anda. Anda dapat mengaturnya menggunakan integrasi layanan AWS analitik AWS Glue, atau Anda dapat menggunakan Katalog Tabel Amazon S3 open source untuk Apache Iceberg katalog klien. Untuk informasi tentang katalog klien, lihatMengakses tabel menggunakan Tabel Amazon S3 Iceberg REST titik akhir.
Pilih metode Anda menggunakan tabel dengan Amazon EMR dari opsi berikut.
Prasyarat berikut diperlukan untuk menanyakan tabel dengan Spark di Amazon EMR menggunakan Katalog Tabel Amazon S3 untuk Apache Iceberg.
Prasyarat
-
Lampirkan
AmazonS3TablesFullAccess
kebijakan ke peran IAM yang Anda gunakan untuk Amazon EMR.
Untuk menyiapkan kluster EMR Amazon ke tabel kueri dengan Spark
Buat cluster dengan konfigurasi berikut. Untuk menggunakan contoh ini, ganti
dengan informasi Anda sendiri.user input placeholders
aws emr create-cluster --release-label emr-7.5.0 \ --applications Name=Spark \ --configurations file://configurations.json \ --region
us-east-1
\ --name My_Spark_Iceberg_Cluster \ --log-uri s3://
/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-roleamzn-s3-demo-bucket
EMR_DefaultRole
\ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole
,SubnetId=subnet-1234567890abcdef0
,KeyName=my-key-pair
configurations.json
:[{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
-
Untuk menginisialisasi a Spark sesi untuk Iceberg yang terhubung ke bucket meja Anda, masukkan perintah berikut. Ganti
dengan ember meja ARN Anda.user input placeholders
spark-shell \ --packages software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:0.1.3 \ --conf spark.sql.catalog.s3tablesbucket=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tablesbucket.catalog-impl=software.amazon.s3tables.iceberg.S3TablesCatalog \ --conf spark.sql.catalog.s3tablesbucket.warehouse=arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-bucket1
\ --conf spark.sql.defaultCatalog=s3tablesbucket \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions -
Kueri tabel Anda dengan Spark SQL. Misalnya kueri, lihatMenanyakan tabel S3 dengan Spark SQL.
catatan
Jika Anda menggunakan DROP TABLE PURGE
perintah dengan Amazon EMR:
Amazon EMR versi 7.5
Setel konfigurasi
spark.sql.catalog.
Spark ke.your-catalog-name
.cache-enabledfalse
Jika konfigurasi ini diatur ketrue
, jalankan perintah dalam sesi atau aplikasi baru sehingga cache tabel tidak diaktifkan.-
Amazon EMR versi lebih tinggi dari 7,5
DROP TABLE
tidak didukung. Anda dapat menggunakanDeleteTable
REST API Tabel S3 untuk menghapus tabel.