Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengakses tabel Amazon S3 dengan Amazon EMR
Amazon EMR (sebelumnya disebut Amazon Elastic MapReduce) adalah platform cluster terkelola yang menyederhanakan menjalankan kerangka kerja data besar, seperti Apache Hadoop danApache Spark, AWS untuk memproses dan menganalisis data dalam jumlah besar. 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 dalam Spark sesi. Untuk menyambungkan ke bucket tabel di Amazon EMR, Anda dapat menggunakan integrasi layanan AWS analitik melalui AWS Glue Data Catalog, atau Anda dapat menggunakan Katalog Tabel Amazon S3 sumber terbuka untuk katalog Apache Iceberg klien.
Menghubungkan ke ember meja S3 dengan Spark di Amazon EMR Gunung es klaster
Dalam prosedur ini, Anda menyiapkan cluster Amazon EMR yang dikonfigurasi untuk Apache Iceberg dan kemudian meluncurkan Spark sesi yang terhubung ke bucket tabel Anda. Anda dapat mengatur ini menggunakan integrasi layanan AWS analitik melalui AWS Glue, atau Anda dapat menggunakan Katalog Tabel Amazon S3 sumber terbuka untuk katalog Apache Iceberg 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.
- Amazon S3 Tables Catalog for Gunung Es Apache
-
Prasyarat berikut diperlukan untuk menanyakan tabel dengan Spark Amazon EMR menggunakan Katalog Tabel Amazon S3 untukApache Iceberg.
Untuk versi terbaru dari katalog klien JAR, lihat repositori katalog s3-tables- GitHub .
Untuk mengatur cluster Amazon EMR untuk menanyakan tabel dengan Spark
Buat cluster dengan konfigurasi berikut. Untuk menggunakan contoh ini, ganti user input placeholdersdengan informasi Anda sendiri.
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://amzn-s3-demo-bucket/ \
--instance-type m5.xlarge \
--instance-count 2 \
--service-role EMR_DefaultRole \
--ec2-attributes \
InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair
configurations.json:
[{
"Classification":"iceberg-defaults",
"Properties":{"iceberg.enabled":"true"}
}]
-
Hubungkan ke node Spark utama menggunakan SSH.
-
Untuk menginisialisasi Spark sesi Iceberg yang terhubung ke bucket tabel Anda, masukkan perintah berikut. Ganti user input placeholders dengan ember meja ARN Anda.
spark-shell \
--packages software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:0.1.8 \
--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, lihatMengkueri tabel S3 dengan Spark SQL.
- AWS analytics services integration
-
Prasyarat berikut diperlukan untuk menanyakan tabel dengan Spark Amazon EMR menggunakan integrasi layanan AWS analitik.
Untuk mengatur cluster Amazon EMR untuk menanyakan tabel dengan Spark
Buat cluster dengan konfigurasi berikut. Untuk menggunakan contoh ini, ganti user input placeholder nilai-nilai dengan informasi Anda sendiri.
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://amzn-s3-demo-bucket/ \
--instance-type m5.xlarge \
--instance-count 2 \
--service-role EMR_DefaultRole \
--ec2-attributes \
InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair
configurations.json:
[{
"Classification":"iceberg-defaults",
"Properties":{"iceberg.enabled":"true"}
}]
-
Hubungkan ke node Spark utama menggunakan SSH.
-
Masukkan perintah berikut untuk menginisialisasi Spark sesi Iceberg yang terhubung ke tabel Anda. Ganti nama user
input placeholders untuk Wilayah, ID akun dan tabel bucket dengan informasi Anda sendiri.
spark-shell \
--conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
--conf spark.sql.defaultCatalog=s3tables \
--conf spark.sql.catalog.s3tables=org.apache.iceberg.spark.SparkCatalog \
--conf spark.sql.catalog.s3tables.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog \
--conf spark.sql.catalog.s3tables.client.region=us-east-1 \
--conf spark.sql.catalog.s3tables.glue.id=111122223333:s3tablescatalog/amzn-s3-demo-table-bucket
-
Kueri tabel Anda dengan Spark SQL. Misalnya kueri, lihat Mengkueri tabel S3 dengan Spark SQL
Jika Anda menggunakan DROP TABLE PURGE perintah dengan Amazon EMR:
Amazon EMR versi 7.5
Setel konfigurasi Spark spark.sql.catalog.your-catalog-name.cache-enabled kefalse. Jika konfigurasi ini diset true el ke, jalankan perintah di sesi atau aplikasi baru sehingga cache tabel tidak diaktifkan.
-
Versi Amazon EMR lebih tinggi dari 7,5
DROP TABLE tidak didukung. Anda dapat menggunakan REST API Tabel DeleteTable S3 untuk menghapus tabel.