如何知道Spark使用什么AWS凭证读取S3文件?

时间:2019-04-02 00:15:40

标签: apache-spark amazon-s3 oozie

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

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

有没有办法确定正在使用哪个活动凭据?可以在火花日志中打印活动的AWS账户密钥ID吗?

2 个答案:

答案 0 :(得分:0)

由于您正在运行Cloudera集群,因此您可能已阅读本文档Make a modified copy of the configuration files

最好在元素内的core-site.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>

答案 1 :(得分:0)

  1. 出于安全原因,AWS登录详细信息实际上并未得到记录。
  2. Spark提交将从您的桌面获取AWS_ env vars并设置fs.s3a值,覆盖其中的任何值。

在s3a连接器中,顺序为

  1. URI中的秘密(错误,避免,已从最新版本中删除)
  2. fs.s3a属性
  3. env vars
  4. 提供给EC2 VM的IAM凭据

您可以configure the list of authentication providers更改顺序,将其删除等等。