将 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 提供商凭证无效

如何将 AWS 区域传递给 lambda 函数?

使用谷歌传输服务将文件从 AWS 传输到 GCP 时出现凭证错误

Elasticsearch npm:传递AWS凭证

如何将凭证传递给 Translation API v3?

如何使用 Terraform 将 GKE 凭证传递给 Kubernetes 提供者?