2016-06-14 69 views
3

TL; DR星火CSV IOException异常Mkdirs无法创建文件

星火1.6.1失败与IOException异常Mkdirs没有一个HDFS集群独立使用星火CSV 1.4编写一个CSV文件无法创建文件

更多细节:

我正在使用Scala在一个使用本地文件系统(我运行的机器甚至没有HDFS)的独立群集上运行Spark 1.6.1应用程序。我有这个数据框,我试图使用HiveContext保存为CSV文件。

这是我运行的是什么:

exportData.write 
     .mode(SaveMode.Overwrite) 
     .format("com.databricks.spark.csv") 
     .option("delimiter", ",") 
     .save("/some/path/here") // no hdfs:/ or file:/ prefix in the path 

,我使用的Spark CSV为1.4。 当运行这段代码,我得到以下异常:

WARN TaskSetManager:70 - Lost task 4.3 in stage 10.0: java.io.IOException: Mkdirs failed to create file: /some/path/here/_temporary/0 

完整的堆栈跟踪是:

at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:442) 
     at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:428) 
     at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:908) 
     at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:801) 
     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:214) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 

输出目录不会获取创建,但其空。我试着运行它使用火花外壳,我做的是创建一个虚拟的数据框,然后使用完全相同的代码保存(也到同一路径)保存它。它成功了。

我检查的权限为我写的文件夹,并把它改成777,但基本上它仍在运行星火工作

谷歌搜索就提示时不工作:

  • 改变文件前缀通过删除hdfs:/我没有反正。我也尝试添加文件:/,文件://,文件:///前缀没有运气
  • 权限问题 - 我试图解决这个问题,使文件夹777
  • 某些MacBook问题可能与我无关因为我正在研究Ubuntu
  • 安全问题 - 检查我的堆栈跟踪,我找不到任何安全失败。
  • 我的文件路径的开头删除/前缀 - 我想它也没有运气
  • 其他悬而未决的问题关于这个问题

任何人不会有什么问题究竟出在什么想法?如何克服它?

在此先感谢

回答

0

行,所以我发现了这个问题,我希望这会帮助别人

显然我运行的机器上安装它的Hadoop。当我运行hadoop version时,它输出:Hadoop 2.6.0-cdh5.7。1这是相互矛盾的,以我的Spark版本

另外,我不太清楚,如果其相关的或没有,但我跑离根,而不是因为这可能引起了一些权限星火用户发出

匹配后火花我们的火花的hadoop版本(在我们的情况下,我们匹配Spark成为cloudera的Spark)并以Spark用户身份运行代码,此故障停止发生

+0

请解释您如何解决上述问题。我自己得到同样的问题 – developer

相关问题