amazon-emr - 带有 Spark 2.4.4 和 Scala 的 Emr 的 S3 访问错误
问题描述
我正在尝试使用 Scala 代码在 EMR 上的 Spark 中访问 S3 文件并收到以下错误
电子病历配置:
斯卡拉代码
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)
错误
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
我检查了 Spark 和 Hadoop jars Hadoop Libraries
能否请你帮忙?
解决方案
请使用s3而不是 s3n 。EMR 不支持 s3a 和 s3n。还要确保您的 EMR_IAM_Role 有权访问该 s3 存储桶。
推荐阅读
- scroll - 页面突然滚动回顶部
- image - 有什么方法可以获取谷歌课堂表格问题插入标题图片网址
- delphi - FMX 框架的 bitblt 替换
- kotlin - Kotlin:类型推断失败。预期类型不匹配:推断类型为 Pair
但是对 预计 - python - 比洪。无法成功向 CMD 标准输入 7-zip 解密命令提供密码
- r - 矩阵行删除,单独工作,循环窃听 [R]
- php - 如何使用正则表达式从复杂字符串中获取电话号码?
- qt - 如何在qml中直接将元素添加到自定义模块的孩子?
- excel - 识别列表中重复的连续行,如果第一列中的值发生变化,则在 Excel 中重新启动识别重复项
- java - 为什么这个类不适合 Junit 测试,我该如何改进它?