2016-06-14 68 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

相關問題