【问题标题】:Cannot create temp dir with proper permission: /mnt1/s3无法创建具有适当权限的临时目录:/mnt1/s3
【发布时间】:2017-05-04 11:01:35
【问题描述】:

以下是其中一个容器的日志转储。我收到一个异常,指出由于某些权限而无法创建文件夹。我已经解决了很多次问题,但它仍然存在。

16/12/19 09:44:05 WARN ConfigurationUtils:无法创建临时目录 适当的权限:/mnt1/s3

java.nio.file.AccessDeniedException: /mnt1 at sun.nio.fs.UnixException.t 这里 ranslateToIOException(UnixException.java:84) 在 sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) 在 sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) 在 sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384) 在 java.nio.file.Files.createDirectory(Files.java:674) 在 java.nio.file.Files.createAndCheckIsDirectory(Files.java:781) 在 java.nio.file.Files.createDirectories(Files.java:767) 在 com.amazon.ws.emr.hadoop.fs.util.ConfigurationUtils.getTestedTempPaths(ConfigurationUtils.java:224) 在 com.amazon.ws.emr.hadoop.fs.s3n.S3NativeFileSystem.initialize(S3NativeFileSystem.java:449) 在 com.amazon.ws.emr.hadoop.fs.EmrFileSystem.initialize(EmrFileSystem.java:111) 在 org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2717) 在 org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:93) 在 org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2751) 在 org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2733) 在 org.apache.hadoop.fs.FileSystem.get(FileSystem.java:377) 在 org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) 在 org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:230) 在 org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:201)

【问题讨论】:

  • 你有没有解决这个问题?我们遇到了同样的问题。另见forums.aws.amazon.com/thread.jspa?threadID=57967,看起来很相似
  • 对此我没有具体的答案。因为当我创建一个新集群时,这个问题就自动解决了。对我来说,这是一个特定于集群的问题。我想你可以比较 hadoop 和 yarn 的所有配置文件。我试过了,我发现很少有差异。但是很久以前我不记得了

标签: amazon-web-services apache-spark amazon-s3 amazon-emr


【解决方案1】:

您应该为您的主节点和任务/核心节点使用相同的实例类型

见:https://forums.aws.amazon.com/thread.jspa?threadID=57967

【讨论】:

  • @Tomer 我已经为 mastercoretask 上的 EMR 5.12.0 节点使用相同的实例类型 [r3.xlarge]在运行我的工作时遇到此错误 [Spark 2.3.0](尽管只是偶尔出现;即,此错误仅有时出现)。我的mastertaskcore有这些配置:8 vCore30.5 GiB内存、80 SSD GB存储、EBS存储:32 GiB;除了一个例外:task 没有任何 EBS 存储
【解决方案2】:

当我运行 AWS EMR 集群并尝试使用 RStudio 和 SparklyR 通过运行简单的“select * from abc”查询从 EMR 边缘节点连接到它时,我遇到了类似的错误。

查询在主节点上有效,但在边缘节点上无效。因此,我查看了 EMR 集群主节点上 /mnt/s3 的权限,并将其与边缘节点中该文件夹的权限进行了比较。不同的是,在主节点上,权限是rwxrwxrwt(类似于/tmp),而在边缘节点上是rwxrwxr--

当我赋予边缘节点与主节点相同的扩展权限时,问题就消失了(我还设置了sticky bit,使其与主节点上的完全相同)。我使用的命令是。

sudo chmod 777 /mnt/s3
sudo chmod o+t /mnt/s3

【讨论】:

  • 我面临同样的问题并使用不同的实例类型。但是我的任务节点具有 /mnt1/s3 权限,作为主节点的 drwxrwxrwt 权限。我正在使用 Pyspark。我在 YARN 日志中看到了上述错误。脚本继续运行并且不会停止。那么,我该怎么办?
猜你喜欢
  • 2018-11-20
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 2017-06-12
  • 2014-05-04
  • 2017-10-06
  • 1970-01-01
相关资源
最近更新 更多