将 AWS 凭证传递给 PigStorage 函数
Posted
技术标签:
【中文标题】将 AWS 凭证传递给 PigStorage 函数【英文标题】:Pass AWS credentials to PigStorage function 【发布时间】:2015-02-23 11:18:57 【问题描述】:如何将 AWS 凭证(aws_access_key 和 aws_secret_key)传递给 PIG PigStorage 函数?
谢谢
【问题讨论】:
【参考方案1】:鉴于这个问题被标记为 EMR,我将假设您将 AWS EMR 用于 Hadoop 集群。如果是这种情况,则无需进一步设置即可访问 S3。 EMR 服务使用启动集群的用户的 AWS 凭证或使用请求的实例角色自动配置 Hadoop FS(PigStorage 将利用)。只需提供 S3 位置,Pig 就会根据用户/角色的策略和权限与 S3 交互。
A = LOAD 's3://<yourbucket>/<path>/' using PigStorage('\t') as (id:int, field2:chararray, field3:chararray);
【讨论】:
【参考方案2】:我不是很明确,并且确实给出了我的用例示例,抱歉。我需要它,因为我需要使用两个不同的 AWS access_keys,并且使用 s3n://access:secret@bucket 之类的东西并没有解决。我通过更改 PigStorage 函数解决了这个问题,将结果存储在 hdfs 中,并在 cleanUpWithSucess 方法上调用了一个将 hdfs 文件上传到带有凭据的 s3 的方法。这样我就可以在PigStorageFunction用来存储的时候把凭证传给它,当然我也改了PigStorage的构造函数来接收这些参数。
【讨论】:
以上是关于将 AWS 凭证传递给 PigStorage 函数的主要内容,如果未能解决你的问题,请参考以下文章
Terraform:传递 AWS 系统管理器参数存储变量时,Terraform AWS 提供商凭证无效