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 连接到程序包存储库以在其他服务启动之前安装安全更新。”
打算重写这个问题,因为我得到了很多更新的信息。
我的问题如下:
我有一个包含 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 连接到程序包存储库以在其他服务启动之前安装安全更新。”