如何判断 Spark 使用哪些 AWS 凭证来读取 S3 文件



我正在运行一个以前运行良好的Oozie作业。现在我在访问 S3 文件时出现权限被拒绝错误。我只是想弄清楚它正在使用哪些凭据以及在哪里修复它们。

据我所知,凭据似乎来自多个位置,并且不确定优先级顺序(例如~/.aws/credentials,环境变量,hadoop配置,IAM角色等(。

有没有办法判断正在使用哪个活动凭据?是否可以在 Spark 日志记录中打印活动的 AWS 账户密钥 ID?

  1. 出于安全原因,AWS 登录详细信息不会真正被记录下来。
  2. Spark submit 将从您的桌面上获取AWS_ env vars 并设置 fs.s3a 值,覆盖其中的任何值。

在 s3a 连接器中,顺序为

  1. URI 中的机密(错误、避免、从最新版本中删除(
  2. FS.S3a 属性
  3. 环境变量
  4. 提供给 EC2 虚拟机的 IAM 凭证

您可以配置身份验证提供程序列表以更改顺序、删除它们等。

因为您运行的是 Cloudera 集群,所以您可能已经阅读了本文档 制作配置文件的修改副本

最好将以下内容添加到元素中的核心站点.xml文件中:

<property>
    <name>fs.s3a.access.key</name>
    <value>Amazon S3 Access Key</value>
</property>
<property>
    <name>fs.s3a.secret.key</name>
    <value>Amazon S3 Secret Key</value>
</property>

最新更新