S3 NoSuchKey 错误访问 Apache Ambari 2.5.1 的 yum 存储库

S3 NoSuchKey error accessing yum repository for Apache Ambari 2.5.1

我已经在 CentOS 6.9 中构建并安装了 Apache Ambari 2.5.1。 (根据 Installation Guide for Ambari 2.5.1)。

我在启动 "ambari-server" 和 "ambari-agent" 后打开了 Ambari UI。默认的 Apache Ambari 2.5.1 Public 存储库是“http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.3.0-63" and "http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos6”。我打开浏览器输入url,浏览器显示指定的key不存在。所以我认为 Apache Ambari 2.5.1 Public 存储库不存在。

<Error>
  <Code>NoSuchKey</Code>
  <Message>The specified key does not exist.   </Message>
  <Key>HDP/centos6/2.x/BUILDS/2.6.3.0-63</Key>       
  <RequestId>81EA7B258C7ACDB4</RequestId>
  <HostId>
    3DEhVcTN7/LxCsa8doX8LNm1ltXGEvUI/5o4hOtKAooNU9iC58NeT8SwJPdE2ZbvXEGb4Hk7mIc=
  </HostId>
</Error>

你能帮我解决这个问题吗?谢谢!

这些实际上是有效的 yum 存储库。 yum 存储库可以通过 HTTP 提供。 Ambari 使用 AWS S3 存储桶作为通过 HTTP 将文件作为 yum 存储库提供服务的便捷方式。

当您导航到 URL 时无法在浏览器中轻松看到任何内容的原因是 S3 并不像提供静态内容的传统 Web 服务器那样真正维护目录层次结构中的文件。相反,它提供了键到对象的映射,应用程序通常使用尾随 / 的约定来模拟目录。

即使您问题中的 URL 没有向浏览器提供有意义的内容,我们也可以使用 AWS Command Line Interface 检查存储桶。 (为简洁起见,对以下输出进行了删减。)

> aws s3 ls s3://dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.3.0-63/
                           PRE RPM-GPG-KEY/
                           PRE accumulo/
                           PRE atlas/
                           ...
                           PRE hadoop/
                           ...
                           PRE hive/
                           PRE hive2/
                           ...
2017-07-17 18:03:01       2630 HDP-2.6.3.0-63.xml
2017-07-17 18:03:01      20366 artifacts.txt
2017-07-17 18:03:01        542 build.id
2017-07-17 18:03:01       8473 build_metadata.txt
2017-07-17 18:03:01        908 hdp-canary.repo
2017-07-17 18:03:01        602 hdp.repo
2017-07-17 18:03:01        578 hdp_private.repo
2017-07-17 18:03:01        574 hdp_public.repo
2017-07-17 18:03:01        612 hdpbn.repo
2017-07-17 18:03:09        497 hotfix_index.html
2017-07-17 18:03:06        502 index.html
2017-07-17 18:03:08        494 private_index.html
2017-07-17 18:03:07        493 public_index.html

我们可以看到Apache Hadoop 生态系统中有各种组件子目录。我们还可以看到 index.html 文件的存在,所以这个 URL 在浏览器中有效:

http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.3.0-63/index.html

我们还看到了 .repo 文件,它们将其定义为有效的 yum 存储库:

> curl http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.3.0-63/hdp.repo
#VERSION_NUMBER=2.6.3.0-63
[HDP-2.6.3.0]
name=HDP Version - HDP-2.6.3.0
baseurl=http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.6.3.0
gpgcheck=1
gpgkey=http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.6.3.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1


[HDP-UTILS-1.1.0.21]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.21
baseurl=http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos6
gpgcheck=1
gpgkey=http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.6.3.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1