首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Spark2.4.4和Scala实现Emr的S3访问错误

用Spark2.4.4和Scala实现Emr的S3访问错误
EN

Stack Overflow用户
提问于 2020-03-28 15:34:39
回答 3查看 215关注 0票数 0

我试图使用Scala代码访问星火上的S3文件,并获得以下错误

电子病历配置:

EMR配置

Scala代码

代码语言:javascript
复制
    val hadoopConf = sparkContext.hadoopConfiguration
    if (baseDirectory.startsWith("s3:")) {
      hadoopConf.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
      hadoopConf.set("fs.s3.awsAccessKeyId", jobProperties.getAs[String](S3_ACCESS_KEY_ID))
      hadoopConf.set("fs.s3.awsSecretAccessKey", jobProperties.getAs[String](S3_SECRET_ACCESS_KEY))
    }
    org.apache.hadoop.fs.FileSystem.get(new java.net.URI(baseDirectory), hadoopConf)

误差

代码语言:javascript
复制
20/03/28 15:18:06 ERROR Client: Application diagnostics message: User class threw exception: org.apache.hadoop.security.AccessControlException: Permission denied: s3n://r10x-tlog/occ/gzip/test_$folder$
        at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.processException(Jets3tNativeFileSystemStore.java:449)
        at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.processException(Jets3tNativeFileSystemStore.java:427)
        at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.handleException(Jets3tNativeFileSystemStore.java:411)
        at 

我检查了星火和哈多普罐子Hadoop图书馆

你能帮忙吗?

EN

回答 3

Stack Overflow用户

发布于 2020-04-19 13:55:23

不要使用s3n,请使用s3。电子病历不支持s3a和s3n。还要确保您的EMR_IAM_Role能够访问该s3桶。

票数 0
EN

Stack Overflow用户

发布于 2020-05-03 00:16:28

您应该使用EMRFS而不是s3a或s3n,因为使用S3作为FS是本机实现。

使用EMRFS,您不需要使用凭据来使用S3。您只需将权限授予DefaultRole

票数 0
EN

Stack Overflow用户

发布于 2022-09-07 14:51:38

只要给列表对象和获取对象的访问密钥提供必要的权限,就可以了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60902824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档