ole*_*ber 1 amazon-s3 amazon-web-services amazon-ecs apache-spark aws-batch
使用 AWS 库,我可以访问 S3,但是如果我尝试使用 Spark 程序(使用 NativePackager 构建)访问 S3,这将不起作用。
我试过 s3://、s3n:// 和 s3a://。
让我展示一些我的测试:
测试 1:
如果我没什么特别的。如前所述失败。
测试2:
在https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html之后,我在调用我的代码之前做了这个代码:
curl --location http://169.254.170.2/$$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI > credentials.txt
export AWS_ACCESS_KEY_ID=`cat credentials.txt | perl -MJSON::PP -E 'say decode_json(<>)->{"AccessKeyId"}'`
export AWS_SECRET_ACCESS_KEY=`cat credentials.txt | perl -MJSON::PP -E 'say decode_json(<>)->{"SecretAccessKey"}'`
Run Code Online (Sandbox Code Playgroud)
之前有一些错误
测试 3:
如果我使用我的个人密钥设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。AWS 库和 Spark Work
考虑到测试 3有效,我的代码有效。出于显而易见的原因,我不喜欢维护密钥。问题是:
如何在 Spark 作业上使用 AWS Batch (ECS) 创建的凭证?
小智 6
我遇到了同样的问题,仔细阅读文档后,我意识到我需要将其添加到我的 spark 属性中:
sparkConf.set('spark.hadoop.fs.s3a.aws.credentials.provider', 'com.amazonaws.auth.DefaultAWSCredentialsProviderChain')
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
900 次 |
| 最近记录: |