将AWS凭据传递给PigStorage函数

时间:2015-02-23 11:18:57

标签: amazon-web-services apache-pig emr

如何将AWS凭据(aws_access_key和aws_secret_key)传递给PIG PigStorage功能?

由于

2 个答案:

答案 0 :(得分:1)

鉴于此问题已标记为EMR,我将假设您正在使用AWS EMR进行Hadoop集群。如果是这种情况,则无需进一步设置即可访问S3。 EMR服务自动配置Hadoop FS(PigStorage将利用)与启动集群的用户的AWS凭据或使用所请求的实例角色。只需提供S3位置,Pig将根据用户/角色的策略和权限与S3进行交互。

A = LOAD 's3://<yourbucket>/<path>/' using PigStorage('\t') as (id:int, field2:chararray, field3:chararray);

答案 1 :(得分:0)

我不是很明确,并且确实给出了我的用例示例,抱歉。我需要这个,因为我需要使用两个不同的AWS access_keys,并使用类似s3n:// access:secret @ bucket这样的东西没有解决。我解决了这个改变PigStorage函数,在hdfs中存储结果,以及在cleanUpWithSucess方法上调用一个方法,用一个凭证将hdfs文件上传到s3。这样我可以在用于存储时将凭证传递给PigStorageFunction,当然我也改变了PigStorage的构造函数来接收这些参数。