如何从EMR中的s3读取文件?

Dav*_*key 6 java hadoop amazon-s3 elastic-map-reduce

我想在我的 EMR Hadoop 作业中从 S3 读取文件。我正在使用自定义 JAR 选项。

我尝试过两种解决方案:

  • org.apache.hadoop.fs.S3FileSystem: 抛出一个NullPointerException.
  • com.amazonaws.services.s3.AmazonS3Client:抛出异常,显示“访问被拒绝”。

我无法理解的是,我是从控制台开始这项工作的,所以显然我应该拥有必要的权限。System.getenv()但是,映射器可用的环境变量 ( ) 中缺少 AWS_*_KEY 键。

我确信我做错了什么,只是不确定是什么。

Sel*_*imN 2

我认为您的 EMR 集群需要访问 S3,您可以为您的 EMR 集群创建 IAM 角色并授予其访问 S3 的权限。检查此链接:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-iam-roles.html