3

我有一个 Spark 作业,它从 s3 存储桶中读取文件,对其进行格式化,然后将它们放在另一个 s3 存储桶中。我正在使用 (SparkSession) spark.read.csv 和 spark.write.csv 功能来完成此任务

当我读取文件时,我需要使用一个 IAM 角色(承担角色),而当我编写文件时,需要删除承担的角色并恢复为我的默认角色。

这可能在同一个火花会话中吗?如果没有,还有其他方法可以做到这一点吗?

任何和所有的帮助表示赞赏!

4

1 回答 1

0

对于 Hadoop 2.8+ 中的 S3A 连接器,S3A 连接器支持按桶设置,因此您可以为不同的桶提供不同的登录选项

在某个时候(可能是在那时,非常多是 hadoop 3),AssumedRoleCredentialProvider 采用一组完整凭据并为给定角色 ARN 调用 AssumeRole,因此改为在该角色下与 s3 交互。

应该是

  1. 确保你的 hadoop-jars 是最新的
  2. 使用您的完整登录设置基本设置
  3. 源存储桶的每个存储桶设置,以使用具有所选 arn 的假定角色凭据提供程序
  4. 在尝试让提交的作业正常工作之前,确保事情从 hadoop 命令行正常工作。
  5. 然后提交作业。
于 2020-09-24T13:17:36.947 回答