Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Zugreifen auf Amazon S3 Tables mit Amazon EMR
Amazon EMR (früher Amazon Elastic genannt MapReduce) ist eine verwaltete Cluster-Plattform, die die Ausführung von Big-Data-Frameworks wie Apache Hadoop und vereinfachtApache Spark, AWS um riesige Datenmengen zu verarbeiten und zu analysieren. Die Verwendung dieser Frameworks und verwandter Open-Source-Projekte, können Sie Daten zu Analysezwecken und Business-Intelligence-Workloads verarbeiten. Mit Amazon EMR können Sie auch große Datenmengen in und aus anderen AWS Datenspeichern und Datenbanken transformieren und verschieben.
Sie können Apache Iceberg-Cluster in Amazon EMR verwenden, um mit S3 Tables zu arbeiten, indem Sie in einer Spark-Sitzung eine Verbindung zu Tabellen-Buckets herstellen. Um eine Verbindung zu Tabellen-Buckets in Amazon EMR herzustellen, können Sie die AWS Analytics-Services-Integration über AWS Glue Data Catalog oder den Open-Source-Amazon S3-Tabellenkatalog für den Apache Iceberg Kundenkatalog verwenden.
Herstellen einer Verbindung zu S3-Table-Buckets mit Spark auf einem Iceberg-Cluster von Amazon EMR
In diesem Verfahren richten Sie einen Amazon EMR-Cluster ein, für den Sie konfiguriert sind, Apache Iceberg und starten dann eine Spark Sitzung, die eine Verbindung zu Ihren Tabellen-Buckets herstellt. Sie können dies mithilfe der AWS Analytics-Services-Integration einrichten oder den Open-Source-Amazon S3-Tabellenkatalog für den Apache Iceberg Kundenkatalog verwenden. AWS Glue Weitere Informationen über den Client-Katalog finden Sie unter Zugreifen auf Tabellen mithilfe der Amazon S3 S3-Tabellen Iceberg REST Endpunkt.
Wählen Sie aus den folgenden Optionen Ihre Methode zur Verwendung von Tabellen mit Amazon EMR aus.
- Amazon S3 Tables Catalog for Apache Iceberg
-
Die folgenden Voraussetzungen sind erforderlich, um Tabellen mit Amazon EMR mithilfe des Spark Amazon S3 S3-Tabellenkatalogs für Apache Iceberg abzufragen.
So richten Sie einen Amazon EMR-Cluster für die Abfrage von Tabellen ein mit Spark
Erstellen Sie einen Cluster mit der folgenden Konfiguration. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders
(Platzhalter für Benutzereingaben) durch Ihre Informationen.
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"}
}]
-
Verbinden Sie sich über SSH mit dem Spark-Primärknoten.
-
Um eine Spark-Sitzung für Iceberg zu initialisieren, die eine Verbindung zu Ihrem Tabellen-Bucket herstellt, geben Sie den folgenden Befehl ein. Ersetzen Sie das user input placeholders
durch Ihren Tabellen-Bucket ARN.
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
-
Fragen Sie Ihre Tabellen mit Spark SQL ab. Beispiele für Abfragen finden Sie unter Abfragen von S3-Tabellen mit Spark SQL.
- AWS analytics services integration
-
Die folgenden Voraussetzungen sind erforderlich, um Tabellen mit Spark Amazon EMR mithilfe der AWS Analytics-Services-Integration abzufragen.
So richten Sie einen Amazon EMR-Cluster für die Abfrage von Tabellen ein mit Spark
Erstellen Sie einen Cluster mit der folgenden Konfiguration. Um dieses Beispiel zu verwenden, ersetzen Sie die user input placeholder
Werte durch Ihre eigenen Informationen.
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"}
}]
-
Verbinden Sie sich über SSH mit dem Spark-Primärknoten.
-
Geben Sie den folgenden Befehl ein, um eine Spark-Sitzung für Iceberg zu initialisieren, die eine Verbindung zu Ihren Tabellen herstellt. Ersetzen Sie user
input placeholders
durch Ihre Informationen.
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
-
Fragen Sie Ihre Tabellen mit Spark SQL ab. Beispiele für Abfragen finden Sie unter Abfragen von S3-Tabellen mit Spark SQL.
Wenn Sie den DROP TABLE PURGE
Befehl mit Amazon EMR verwenden:
Amazon EMR Version 7.5
Stellen Sie die Spark-Konfiguration spark.sql.catalog.your-catalog-name
.cache-enabled
auf einfalse
. Ist diese Konfiguration auf true
gesetzt, führen Sie den Befehl in einer neuen Sitzung oder Anwendung aus, sodass der Tabellen-Cache nicht aktiviert wird.
-
Amazon EMR-Versionen höher als 7.5
DROP TABLE
wird nicht unterstützt. Sie können die DeleteTable
REST-API für S3-Tabellen verwenden, um eine Tabelle zu löschen.