2017-06-14 57 views
0

好,我目前有一个带有3个工作节点的spark的集群。我还有一个安装在/var/nfs上的nfs服务器,并具有777许可权进行测试。我试图运行下面的代码在文本来算的话:SaveAsTextFile()导致Mkdirs失败 - Apache Spark

[email protected]:/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"); 

但火花给了我以下错误:

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)

我已经搜索了很多网站,但我无法找到我的情况的解决方案。所有的帮助都很感激。

+0

确保在HDFS – Wang

+0

@Wang你是什么意思丝毫HDFS路径是否存在? – postgresqlx12

+0

人们在询问有关非本地模式在没有HDFS的情况下运行(即使用NFS或甚至仅使用本地卷)。 – mathtick

回答

-1

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

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

这就是为什么,错误说:exists=false

+0

当你使用:spark-shell启动spark-shell时,默认情况下,它将主服务器当作LOCAL,然后spark使用本地fs进行IO操作。 –

+0

NFS(即非本地)的分辨率是多少?这不是一个完整的答案。 – mathtick