- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在 tomcat 中运行 Java Spark 应用程序并收到以下异常:
Caused by: java.io.IOException: Mkdirs failed to create file:/opt/folder/tmp/file.json/_temporary/0/_temporary/attempt_201603031703_0001_m_000000_5
在线
text.saveAsTextFile("/opt/folder/tmp/file.json") //where text is a JavaRDD<String>
问题是/opt/folder/tmp/已经存在并成功创建了/opt/folder/tmp/file.json/_temporary/0/然后它遇到了看起来像剩余的权限问题部分路径 _temporary/attempt_201603031703_0001_m_000000_5
本身,但我将 tomcat 用户权限( chown -R tomcat:tomcat tmp/
和 chmod -R 755 tmp/
)授予了 tmp/目录。有谁知道会发生什么?
谢谢
为@javadba 编辑:
[root@ip tmp]# ls -lrta
total 12
drwxr-xr-x 4 tomcat tomcat 4096 Mar 3 16:44 ..
drwxr-xr-x 3 tomcat tomcat 4096 Mar 7 20:01 file.json
drwxrwxrwx 3 tomcat tomcat 4096 Mar 7 20:01 .
[root@ip tmp]# cd file.json/
[root@ip file.json]# ls -lrta
total 12
drwxr-xr-x 3 tomcat tomcat 4096 Mar 7 20:01 _temporary
drwxrwxrwx 3 tomcat tomcat 4096 Mar 7 20:01 ..
drwxr-xr-x 3 tomcat tomcat 4096 Mar 7 20:01 .
[root@ip file.json]# cd _temporary/
[root@ip _temporary]# ls -lrta
total 12
drwxr-xr-x 2 tomcat tomcat 4096 Mar 7 20:01 0
drwxr-xr-x 3 tomcat tomcat 4096 Mar 7 20:01 ..
drwxr-xr-x 3 tomcat tomcat 4096 Mar 7 20:01 .
[root@ip _temporary]# cd 0/
[root@ip 0]# ls -lrta
total 8
drwxr-xr-x 3 tomcat tomcat 4096 Mar 7 20:01 ..
drwxr-xr-x 2 tomcat tomcat 4096 Mar 7 20:01 .
catalina.out 中的异常
Caused by: java.io.IOException: Mkdirs failed to create file:/opt/folder/tmp/file.json/_temporary/0/_temporary/attempt_201603072001_0001_m_000000_5
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:438)
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:424)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:906)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:799)
at org.apache.hadoop.mapred.TextOutputFormat.getRecordWriter(TextOutputFormat.java:123)
at org.apache.spark.SparkHadoopWriter.open(SparkHadoopWriter.scala:91)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1$$anonfun$13.apply(PairRDDFunctions.scala:1193)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1$$anonfun$13.apply(PairRDDFunctions.scala:1185)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
at org.apache.spark.scheduler.Task.run(Task.scala:89)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
... 1 more
最佳答案
saveAsTextFile
实际上是由 Spark 执行器处理的。根据您的 Spark 设置,Spark 执行程序可能以不同用户的身份运行,而不是您的 Spark 应用程序驱动程序。我想 spark 应用程序驱动程序为作业准备好目录,但是作为不同用户运行的执行者无权在该目录中写入。
更改为 777 无济于事,因为权限不会被子目录继承,所以无论如何您都会得到 755。
尝试以运行 Spark 的用户身份运行您的 Spark 应用程序。
关于java - Spark saveAsTextFile() 导致 Mkdirs 无法为目录的一半创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778653/
我正在尝试在 Java 中创建一个新目录,但它不起作用。我想知道为什么,因为我首先尝试了 mkdir() ,然后尝试了 mkdirs() ,它应该创建不存在的目录。 我写道: boolean stat
我尝试使用 mkdir 在本地 git 存储库中创建文件夹。它没有用,但是mkdir -p 有效。 为什么? 顺便说一句,我正在使用 Mac 操作系统。我检查了 mkdir -p 的定义。但是我还是不
我一直在关注 Learn Code the Hard Way 的教程,了解如何在 PowerShell 中使用命令行界面。在 this文章中,它告诉我使用命令 mkdir -p i\like\icec
下面是我的 MainActivity.java 代码。根据 toasts 的错误是在创建目录时。 主 Activity .java @Override protected void onActivit
我使用以下代码: final File newFile = new File("/mnt/sdcard/test/"); newFile.mkdir(); // if I use mkdirs() r
我被这个逼疯了: Log.d("STATE", Environment.getExternalStorageState()); File f = new File(Environment.getExt
我正在创建一个应用程序,我需要创建多个文件夹,而且创建文件夹是一步到位的。 要做最优化,然后我意识到 mkdir() 比 system('mkdir path') 快得多; 有谁知道原因吗? 最佳答案
mkdir $2 || echo "I can't create directory $2" && exit 8 大家好,这是我在这里的第一篇文章,请多多关照。 我现在正在制作一个脚本,这一行让我很困
您好,我最近遇到了这个问题,但能够解决它。实际上路径中的拼写错误。我想知道如何正确处理这些错误。也就是说,如果 mkdir 失败,我的程序应该继续执行并且应该安全地返回 false。这是我的代码 tr
我正在尝试在我的程序开始时创建一个日志文件。 如果 /log 目录没有创建目录,我需要检查它是否存在,然后继续创建日志文件。 好吧,我尝试使用 os.Mkdir(以及 os.MkdirAll),但无论
以下代码可与其他 API 一起使用,但 26 public static boolean cretaeDir() { String dir = Environment.getExternalS
尝试在 PHP 中使用 mkdir() 函数时出现此错误。 基本上,我是在我的服务器上创建一个基于 input field 的 HTML 表单中名为 (inPut) 的 sundomain。 现在我正
为什么 file.mkdir 返回 false? Google 指出可能有多种原因(例如安全性、权限、路径名等)。 我的问题: 如何找到返回false的确切原因? 如果安全/权限是一个原因,那么为什么
我找不到答案的简单问题: 使用 os.mkdir("somedir") 比 os.system("mkdir somedir") 或 subprocess.call() 有好处吗,超越代码可移植性?
这个问题与this question无关.我已经看到它了,但它是特定的 Android 4.4.2 问题,因为该代码在其他版本的 Android 上运行良好。 final File path = ne
os.Mkdir 和 syscall.Mkdir 在 Golang 中有相同的 API 系统调用.Mkdir: func Mkdir(path string, mode uint32) (err er
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、它们为什么不起作用以及预期结果。另
这个问题在这里已经有了答案: What is different between makedirs and mkdir of os? (3 个答案) 关闭 9 个月前。 根据 python 3.6
我通过 bash 中的 mkdir 和 python 中的 os.mkdir 使用文件模式创建了目录。他们制作了具有不同权限的目录。 我在命令行中的测试代码如下, $ mkdir -m 0775 aa
给定: MIGRATION_FOLDER=/opt/migration 要么这样: ssh -tt ${REMOTE_SERVER} sudo sh -c "mkdir -p /opt/migrati
我是一名优秀的程序员,十分优秀!