将 AWS 凭证传递给 PigStorage 函数
Pass AWS credentials to PigStorage function
如何将 AWS 凭据(aws_access_key 和 aws_secret_key)传递给 PIG PigStorage 函数?
谢谢
鉴于此问题带有 EMR 标记,我假设您正在为 Hadoop 集群使用 AWS EMR。如果是这种情况,则无需进一步设置即可访问 S3。 EMR 服务使用启动集群的用户的 AWS 凭证或使用请求的实例角色自动配置 Hadoop FS(PigStorage 将利用它)。只需提供 S3 位置,Pig 就会根据 user/role 的策略和权限与 S3 交互。
A = LOAD 's3://<yourbucket>/<path>/' using PigStorage('\t') as (id:int, field2:chararray, field3:chararray);
我不是很明确,并给出了我的用例示例,抱歉。我需要它,因为我需要使用两个不同的 AWS access_keys,并且使用像 s3n://access:secret@bucket 这样的东西并没有解决。我解决了这个改变 PigStorage 函数的问题,将结果存储在 hdfs 中,并在 cleanUpWithSucess 方法上调用一个方法,该方法使用凭据将 hdfs 文件上传到 s3。这样我就可以在 PigStorageFunction 用于存储时将凭据传递给它,当然我还更改了 PigStorage 的构造函数以接收这些参数。
如何将 AWS 凭据(aws_access_key 和 aws_secret_key)传递给 PIG PigStorage 函数?
谢谢
鉴于此问题带有 EMR 标记,我假设您正在为 Hadoop 集群使用 AWS EMR。如果是这种情况,则无需进一步设置即可访问 S3。 EMR 服务使用启动集群的用户的 AWS 凭证或使用请求的实例角色自动配置 Hadoop FS(PigStorage 将利用它)。只需提供 S3 位置,Pig 就会根据 user/role 的策略和权限与 S3 交互。
A = LOAD 's3://<yourbucket>/<path>/' using PigStorage('\t') as (id:int, field2:chararray, field3:chararray);
我不是很明确,并给出了我的用例示例,抱歉。我需要它,因为我需要使用两个不同的 AWS access_keys,并且使用像 s3n://access:secret@bucket 这样的东西并没有解决。我解决了这个改变 PigStorage 函数的问题,将结果存储在 hdfs 中,并在 cleanUpWithSucess 方法上调用一个方法,该方法使用凭据将 hdfs 文件上传到 s3。这样我就可以在 PigStorageFunction 用于存储时将凭据传递给它,当然我还更改了 PigStorage 的构造函数以接收这些参数。