SaveAsTextFile() 导致 Mkdirs 失败 - Apache Spark

SaveAsTextFile() results in Mkdirs failed - Apache Spark

很好,我目前在 spark 中有一个集群,其中包含 3 个工作节点。我还在 /var/nfs 上安装了一个 nfs 服务器,具有 777 测试权限。我正在尝试 运行 以下代码来计算文本中的单词数:

root@master:/home/usuario# MASTER="spark://10.0.0.1:7077" spark-shell
val inputFile = sc.textFile("/var/nfs/texto.txt")
val counts = inputFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
counts.toDebugString
counts.cache()
counts.count()
counts.saveAsTextFile("/home/usuario/output");

但是 spark 给我以下错误:

Caused by: java.io.IOException: Mkdirs failed to create file:/var/nfs/output-4/_temporary/0/_temporary/attempt_20170614094558_0007_m_000000_20 (exists=false, cwd=file:/opt/spark/work/app-20170614093824-0005/2)

我搜索了很多网站,但找不到适合我的案例的解决方案。感谢所有帮助。

当您启动 spark-shell 并将 MASTER 作为有效的应用程序主机 url - 而不是 local[*] 时,spark 会将所有路径视为 HDFS;并且只在底层HDFS中执行IO操作;不在本地。

您已经在本地文件系统中安装了这些位置;并且这些路径在 HDFS 中不存在。

这就是错误显示的原因:exists=false

和我一样的问题。
再次检查目录的所有权。

sudo chown -R owner-user:owner-group directory