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-Tabellen 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, der für Apache Iceberg konfiguriert ist, 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 über den Amazon S3 Tables 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 müssen erfüllt sein, um Tabellen mit Spark in Amazon EMR mithilfe des Katalogs von Amazon S3 Tables für Apache Iceberg abzufragen.
Die neueste Version des Client-Katalog-JAR finden Sie im Repository GitHub s3-tables-catalog.
So richten Sie einen Amazon-EMR-Cluster für die Abfrage von Tabellen mit Spark ein
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 den user input placeholders durch den ARN Ihres Tabellen-Buckets.
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
-
Fragen Sie Ihre Tabellen mit Spark SQL ab. Beispiele für Abfragen finden Sie unter Abfragen von S3 Tables mit Spark.
- 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 mit Spark ein
Erstellen Sie einen Cluster mit der folgenden Konfiguration. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholder-Werte 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.
-
Geben Sie den folgenden Befehl ein, um eine Spark-Sitzung für Iceberg zu initialisieren, die eine Verbindung zu Ihren Tabellen herstellt. Ersetzen Sie die user
input placeholders für Region, Konto-ID und Tabellen-Bucket-Name durch Ihre eigenen Daten.
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
-
Fragen Sie Ihre Tabellen mit Spark SQL ab. Beispiele für Abfragen finden Sie unter Abfragen von S3 Tables mit Spark.
Wenn Sie den Befehl DROP TABLE PURGE mit Amazon EMR verwenden:
Amazon EMR Version 7.5
Setzen Sie die Spark-Konfiguration spark.sql.catalog.your-catalog-name.cache-enabled auf false. 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. Verwenden Sie die REST-API DeleteTable von S3 Tables, um eine Tabelle zu löschen.