

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 Apache Iceberg 与 Amazon EMR on EKS 结合使用
<a name="tutorial-iceberg"></a>

Iceberg 的运行时 JAR 文件包含 Spark 运行时支持所需的 Iceberg 类。以下过程展示了如何使用 Iceberg spark 运行时启动作业运行。

**将 Apache Iceberg 与 Amazon EMR on EKS 应用程序结合使用**

1. 启动任务运行以在应用程序配置中提交 Spark 任务时，请包含 Iceberg Spark 运行时 JAR 文件：

   ```
   --job-driver '{"sparkSubmitJobDriver" : {"sparkSubmitParameters" : "--jars local:///usr/share/aws/iceberg/lib/iceberg-spark3-runtime.jar"}}'
   ```

1. 包含 Iceberg 额外配置：

   ```
   --configuration-overrides '{
       "applicationConfiguration": [
       "classification" : "spark-defaults", 
       "properties" : {
           "spark.sql.catalog.dev.warehouse" : "s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/ ", 
           "spark.sql.extensions ":" org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions ", 
           "spark.sql.catalog.dev" : "org.apache.iceberg.spark.SparkCatalog",
           "spark.sql.catalog.dev.catalog-impl" : "org.apache.iceberg.aws.glue.GlueCatalog",
           "spark.sql.catalog.dev.io-impl": "org.apache.iceberg.aws.s3.S3FileIO"
           }
       ]
   }'
   ```

要了解有关 EMR Apache Iceberg 发行版的更多信息，请参阅 [Iceberg 发布历史记录](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/Iceberg-release-history.html)。

## 用于目录集成的 Spark 会话配置
<a name="iceberg-with-lake-formation-spark-catalog-integration-lf-eks"></a>

### Iceberg AWS Glue 目录集成的 Spark 会话配置
<a name="iceberg-with-lake-formation-spark-catalog-integration-lf-glue"></a>

此示例展示了如何将 Iceberg 与 AWS Glue 爬网程序集成：

```
spark-sql \
  --conf spark.sql.catalog.rms = org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.rms.type = glue \
  --conf spark.sql.catalog.rms.glue.id = glue RMS catalog ID \
  --conf spark.sql.catalog.rms.glue.account-id = AWS account ID \
  
  --conf spark.sql.extensions=
    org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
```

下面显示了一个示例查询：

```
SELECT * FROM rms.rmsdb.table1
```

### Iceberg REST AWS Glue 目录集成的 Spark 会话配置
<a name="iceberg-with-lake-formation-spark-catalog-integration-lf-rest"></a>

此示例展示了如何将 Iceberg REST 与 AWS Glue 爬网程序集成：

```
spark-sql \
  --conf spark.sql.catalog.rms = org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.rms.type = rest \
  --conf spark.sql.catalog.rms.warehouse = glue RMS catalog ID \
  --conf spark.sql.catalog.rms.uri = glue endpoint URI/iceberg \
  --conf spark.sql.catalog.rms.rest.sigv4-enabled = true \
  --conf spark.sql.catalog.rms.rest.signing-name = glue \
  
  --conf spark.sql.extensions=
    org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
```

下面显示了一个示例查询：

```
SELECT * FROM rms.rmsdb.table1
```

此配置仅适用于 Redshift 托管存储。不支持 FGAC for Amazon S3。