View a markdown version of this page

注意事项和限制 - Amazon EMR

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

注意事项和限制

General

在 EMR Serverless 中使用 Lake Formation 时,请查看以下限制。

注意

在 EMR Serverless 上为 Spark 作业启用 Lake Formation 时,作业会启动系统驱动程序和用户驱动程序。如果在启动时指定了预初始化容量,则会从预初始化容量中预置驱动程序,系统驱动程序的数量与指定的用户驱动程序的数量相等。如果选择按需容量,EMR Serverless 除了会启动用户驱动程序外,还会启动系统驱动程序。要估算在 Lake Formation 作业中使用 EMR Serverless 相关的成本,请使用 AWS 定价计算器。

  • 从 Amazon EMR 7.14.0 开始,Lake Formation-enabled 应用程序仅支持在用户空间中使用自定义 EMR 无服务器镜像。执行 Lake Formation 策略的系统空间继续使用默认的 EMR 无服务器基础映像。这种支持也适用于 Apache Spark 8.x 版本系列的 AWS 运行时,开头为emr-spark-8.1.0。亚马逊 EMR 7.13.0 及更早版本或更早版本不支持带有 Lake Formation 的自定义镜像。emr-spark-8.0.0

  • 您不能为 Lake Formation 作业关闭 DynamicResourceAllocation。

  • 您只能将 Lake Formation 与 Spark 作业结合使用。

  • 启用 Lake Formation 的 EMR Serverless 在整个作业中仅支持单个 Spark 会话。

  • 启用 Lake Formation 的 EMR Serverless 仅支持通过资源链接共享的跨账户表查询。

  • 不支持以下项:

    • 弹性分布式数据集(RDD)

    • Spark 流

    • 嵌套列的访问控制

  • EMR Serverless 会阻止可能破坏系统驱动程序完全隔离的功能,包括:

    • UDT、HiveUDFS 以及任何涉及自定义类的用户定义函数

    • 自定义数据来源

    • 为 Spark 扩展、连接器或元存储提供额外的 jar

    • ANALYZE TABLE 命令

  • 如果您的 EMR Serverless 应用程序位于具有 Amazon S3 的 VPC 终端节点的私有子网中,并且您附加了终端节点策略来控制访问权限,则在任务向 AWS 托管 Amazon S3 发送日志数据之前,请将您的 VPC 策略中的托管存储中详述的权限添加到 S3 网关终端节点。如有疑难解答请求,请联系 AWS 支持部门。

  • 从 Amazon EMR 7.9.0 开始,Spark FGAC 支持与 s3a: S3AFileSystem //方案一起使用。

  • 亚马逊 EMR 7.11 支持使用 CTAS 创建托管表。

  • 亚马逊 EMR 7.12 支持使用 CTAS 创建托管表和外部表。

  • 从 Amazon EMR 7.12 开始,修改表数据的 DML 和 DDL 操作使用 Lake Formation 证书。在 Amazon EMR 7.11 及更早版本中,这些操作(删除、更新和合并除外)使用任务运行时角色凭证来修改表数据。亚马逊 EMR 7.11 及更早版本不支持删除、更新和合并操作。

  • 使用 L AWS ake Formation-vended 凭证修改表数据的 DDL 和 DML 操作仅支持 S3A。当您使用 EMRFS 时,作业运行时角色凭证将改为适用。

  • 带有 Lake Formation 的 EMR 无服务器不支持读取或写入指向非 S3 位置的表。

Permissions

  • 为了强制实施访问控制,EXPLAIN PLAN 和 DDL 操作(例如 DESCRIBE TABLE)不会公开受限信息。

  • 当您向 Lake Formation 注册表位置时,数据访问使用 Lake Formation 存储的凭证,而不是 EMR Serverless 作业运行时角色的 IAM 权限。如果表位置的注册角色配置不正确,即使运行时角色拥有该位置的 S3 IAM 权限,任务也会失败。

  • 从 Amazon EMR 7.12 开始,您可以在追加模式下使用 DataFrameWriter (V2) 和 Lake Formation 凭证写入现有的 Hive 和 Iceberg 表。对于覆盖操作或创建新表时,EMR 使用运行时角色凭据修改表数据。

  • 使用视图或缓存表作为源数据时存在以下限制(这些限制不适用于 AWS Glue 数据目录视图):

    • 用于合并、删除和更新操作

      • 支持:使用视图和缓存表作为源表。

      • 不支持:在赋值和条件子句中使用视图和缓存表。

    • 对于 “创建” 或 “替换表” 和 “按选择替换表” 操作:

      • 不支持:使用视图和缓存表作为源表。

  • 只有在启用删除向量时,源数据中带有 UDF 的 Delta Lake 表才支持合并、删除和更新操作。

日志和调试

  • EMR Serverless 限制访问 Lake 应用程序上的系统驱动程序 Spark 日志。 Formation-enabled由于系统驱动程序以提升的权限运行,因此系统驱动程序生成的事件和日志可能包含敏感信息。为防止未经授权的用户或代码访问此敏感数据,EMR Serverless 禁止访问系统驱动程序日志。

  • 系统配置文件日志始终保存在托管存储中:这是一项强制性设置,无法禁用。这些日志使用客户管理的 KMS 密钥或托管 KMS 密钥进行 AWS 安全存储和加密。

Iceberg

使用 Apache Iceberg 时,请查看以下注意事项:

  • 您只能在会话目录中使用 Apache Iceberg,而不能使用任意命名的目录。

  • 在 Lake Formation 中注册的 Iceberg 表仅支持元数据表 history、metadata_log_entries、snapshots、files、manifests 和 refs。Amazon EMR 会隐藏可能包含敏感数据的列,例如 partitions、path 和 summaries。此限制不适用于未在 Lake Formation 中注册的 Iceberg 表。

  • 未在 Lake Formation 中注册的表支持所有 Iceberg 存储过程。任何表都不支持 register_table 和 migrate 程序。

  • 我们建议你使用 Iceberg DataFrameWriterV2 而不是 V1。