Amazon EMR - 从站上的 Yum 更新引导操作失败

Amazon EMR - Yum Update Boostrap Action Fails on Slave

打算重写这个问题,因为我得到了很多更新的信息。

我的问题如下:

我有一个包含 1 个主节点和 1 个从节点的 EMR 集群。从节点配置为可以不受限制地访问开放互联网(我知道这是一个安全风险)。

当我使用 bootstrap 操作设置此集群时,它只调用 sudo yum -y update,它失败了,说 bootstrap 操作在从属节点上失败(它总是在主节点上成功)

但是,如果 SSH 进入从节点并手动尝试执行 sudo yum -y update,操作会在 5.5.0 EMR 包上成功。

我无法进一步调试为什么会发生这种情况,因为尽管据我所知已正确配置它,EMR 不会将任何日志复制到 S3(日志复制最多是零星的)并且 CloudWatch 不会接收来自 VPC 的任何日志,这使得调试此问题非常模糊。

如有任何信息,我们将不胜感激。

编辑:我能够让我的 CloudWatch VPC 日志正常工作(显然我的 IAM 没有信任关系来上传日志),它显示了很多拒绝,而主节点似乎没有显示任何拒绝。这让我假设正在进行一些自动配置并阻止我正确下载 yum 软件包?

按照提出晦涩问题并自行解决的传统,让我分享一下我的缓解措施。

事实证明这是EMR-5.5.0 发布标签 中的一个问题。降级到 EMR-5.3.0 解决了我的脚本问题,现在脚本按预期正常执行。

执行脚本的 time/way 似乎在 5.5.0 中发生了变化。

我在使用 EMR 6.3.0 时遇到了同样的错误。有趣的是,它适用于某些 AWS 账户。我相信 boostrap 操作与 EMR 配置同时运行。所以如果 yum update 时间过长,一些包会安装失败。

我试了几次,不同的包在这个日志文件中失败:.../node/reports/**/*.yaml.gz,消息为 "Error: Rpmdb changed underneath us"

我的解决方案是从我的 bootstrap 操作中删除 yum update。根据此文档,这很好: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html

“在首次启动时,默认情况下,Amazon Linux AMI 连接到程序包存储库以在其他服务启动之前安装安全更新。”