注意事项和限制 - Amazon EMR

注意事项和限制

将 Lake Formation 与 Amazon EMR on EKS 结合使用时,请注意以下注意事项和限制:

  • Amazon EMR on EKS 仅支持通过 Lake Formation 对 Apache Hive、Apache Iceberg、Apache Hudi 和 Delta 表格式进行精细访问控制。Apache Hive 格式包括 Parquet、ORC 和 xSV。

  • DynamicResourceAllocation 默认启用,并且您无法为 Lake Formation 作业关闭 DynamicResourceAllocation。由于 DRA spark.dynamicAllocation.maxExecutors 配置的默认值为无穷大,请根据您的工作负载配置合适的值。

  • 启用 Lake Formation 的作业不支持在系统驱动程序和系统执行程序中使用自定义 EMR on EKS 映像。

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

  • 具有 Lake Formation 的 EMR on EKS 在整个作业中仅支持单个 Spark 会话。

  • 具有 Lake Formation 的 EMR on EKS 仅支持通过资源链接共享的跨账户表查询。

  • 不支持以下项:

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

    • Spark 流

    • 使用 Lake Formation 授予的权限写入

    • 嵌套列的访问控制

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

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

    • 自定义数据来源

    • 为 Spark 扩展、连接器或元存储 ANALYZE TABLE 命令提供额外 jar

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

  • Amazon EMR on EKS 限制访问启用 Lake Formation 的作业上的系统驱动程序 Spark 日志。由于系统驱动程序的运行权限更大,因此系统驱动程序生成的事件和日志可能包含敏感信息。为防止未经授权的用户或代码访问此敏感数据,EMR on EKS 禁止访问系统驱动程序日志。要进行故障排除,请联系 AWS 支持。

  • 如果您在 Lake Formation 中注册了表位置,则无论 EMR on EKS 作业执行角色的 IAM 权限如何,数据访问路径都会经过 Lake Formation 存储的凭证。如果错误配置了在表位置注册的角色,则使用具有 S3 IAM 权限的角色提交到表位置的作业会失败。

  • 写入 Lake Formation 表使用的是 IAM 权限,而不是 Lake Formation 授予的权限。如果作业执行角色拥有必要的 S3 权限,则可以使用该权限来运行写入操作。

以下是使用 Apache Iceberg 时的注意事项和限制:

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

  • 在 Lake Formation 中注册的 Iceberg 表仅支持元数据表 historymetadata_log_entriessnapshotsfilesmanifestsrefs。Amazon EMR 会隐藏可能包含敏感数据的列,例如 partitionspathsummaries。此限制不适用于未在 Lake Formation 中注册的 Iceberg 表。

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

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

有关更多信息,请参阅了解 Amazon EMR on EKS 概念和术语启用 Amazon EMR on EKS 的集群访问

数据管理员免责声明

注意

当您向 EMR on EKS 的 IAM 角色授予对 Lake Formation 资源的访问权限时,必须确保 EMR 集群管理员或操作员是受信任的管理员。这对于在多个组织和 AWS 账户之间共享的 Lake Formation 资源尤其重要。

EKS 管理员的职责

  • System 命名空间应受到保护。不允许任何用户、资源、实体或工具对 System 命名空间中的 Kubernetes 资源拥有任何 Kubernetes RBAC 权限。

  • 除了 EMR on EKS 服务之外,任何用户、资源或实体都不应该对 User 命名空间中的 POD、CONFIG_MAP 和 SECRET 具有 CREATE 权限。

  • System 驱动程序和 System 执行程序包含敏感数据。因此,不应将 System 命名空间中的 Spark 事件、Spark 驱动程序日志和 Spark 执行程序日志转发到外部日志存储系统。