为 Amazon EMR 使用默认的 Amazon Linux AMI - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

为 Amazon EMR 使用默认的 Amazon Linux AMI

除非您指定自定义 AMI,否则每个 Amazon EMR 发行版都会为 Amazon EMR 使用默认的 Amazon Linux AMI 默认 AMI 基于发行 Amazon EMR 时最新的可用 Amazon Linux AMI。AMI 已使用大数据应用程序和该版本中附带的 Amazon EMR 功能针对兼容性进行测试。

每个 Amazon EMR 发行版均“锁定”为 Amazon Linux AMI 版本以保持兼容性。这意味着,即使有更新版本的 Amazon Linux AMI 可用,系统也会为 Amazon EMR 发行版使用相同的 Amazon Linux AMI 版本。因此,我们建议您使用最新的 Amazon EMR 发行版,除非您需要使用早期版本以确保兼容性且无法迁移。

如果您必须使用早期版本的 Amazon EMR 来确保兼容性,我们建议您使用系列中的最新版本。例如,如果您必须使用 5.12 系列,请使用 5.12.2,而不是 5.12.0 或 5.12.1。如果系列中有新版本可用,请考虑将您的应用程序迁移到新版本。

如何管理软件更新

以下是需要注意的默认软件更新行为:

  • 默认引导行为不包括内核更新。当基于 Amazon EMR 默认 Amazon Linux AMI 的集群中的 Amazon EC2 实例首次启动时,它会检查 Amazon Linux 的已启用的软件包存储库以及适用于 AMI 版本的软件更新的 Amazon EMR。与其他 Amazon EC2 实例一样,这些存储库中的关键和重要安全更新会自动安装。但是,如果您使用旧版本的 Amazon Linux AMI,则可能无法自动安装最新的安全更新。这是因为 EMR 引用的存储库对于每个版本的 Amazon Linux AMI 都是固定的。同样,请注意,您的网络配置必须允许 HTTP 和 HTTPS 传出到 Amazon S3 中的 Amazon Linux 存储库,否则安全更新将失败。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的程序包存储库。默认情况下,需要重新启动的其他软件包和内核更新(包括 NVIDIA 和 CUDA)将在首次启动时从自动下载中排除。

    重要

    运行 Amazon Linux 或 Amazon Linux 2 AMI(Amazon Linux Machine Image)的 Amazon EMR 集群使用默认的 Amazon Linux 行为,且不会自动下载和安装需要重新启动的重要关键内核更新。这与运行默认 Amazon Linux AMI 的其他 Amazon EC2 实例的行为相同。如果需要重新启动的新 Amazon Linux 软件更新(例如内核、NVIDIA 和 CUDA 更新)在 Amazon EMR 版本发布后可用,则运行默认 AMI 的 Amazon EMR 集群实例不会自动下载和安装这些更新。要获取内核更新,您可以自定义 Amazon EMR AMI,以使用最新的 Amazon Linux AMI

  • 集群启动时有无更新。请注意,如果由于在集群首次启动时无法访问软件包存储库而导致无法安装软件更新,则集群实例仍会完成启动。例如,存储库可能由于 S3 暂时不可用而无法访问,或者您可能将 VPC 或防火墙规则配置为了阻止访问。

  • 请勿运行 sudo yum update。当您使用 SSH 连接到集群实例时,屏幕输出的前几行会提供一个链接,该链接指向实例使用的 Amazon Linux AMI 的发布说明、最新 Amazon Linux AMI 版本的通知、可供已启用存储库中的更新使用的软件包数量的通知,以及可用于运行 sudo yum update 的指令。

重要

我们强烈建议您不要在使用 SSH 或使用引导操作连接的同时,在集群实例上运行 sudo yum update。这可能会导致不兼容,因为所有软件包都是不加区分地安装的。

管理软件更新的最佳实践

  • 如果您使用早期版本的 Amazon EMR,请考虑对迁移到最新版本进行测试,然后再更新软件包。

  • 如果您迁移到更新的发行版或升级软件包,请首先在非生产环境中测试实施。使用 Amazon EMR 控制台克隆集群的选项对此大有帮助。

  • 逐个为您的应用程序和 Amazon Linux AMI 版本评估软件更新。仅在生产环境中测试和安装程序包,该生产环境是您确定安全状况、应用程序功能或性能时绝对需要的。

  • 请访问 Amazon Linux 安全中心,获取更新。

  • 避免通过使用 SSH 连接到单个集群实例来安装软件包。相反,根据需要使用引导操作来安装和更新所有集群实例上的软件包。这要求您终止并重新启动集群。有关更多信息,请参阅创建引导操作以安装其他软件