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

スパーク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:/を削除してファイル接頭辞を付けてください。また、file:/、file://、file:///プレフィックスを追加してみました。
  • 許可の問題 - 私はこの問題を解決するためにフォルダ777を作成しました。
  • 私がUbuntuで作業しているので、
  • セキュリティ問題 - 私のstacktraceを調べると、私はセキュリティの失敗を見つけることができませんでした。
  • 私のファイルパスの先頭に/プレフィックスを削除する - 私はこの問題に

に関する運

  • 他の未回答の質問と同様にそれを試してみました誰もが正確に問題が何であるかを上の任意のアイデアを持っていますか?そしてそれを克服する方法は?事前

  • 答えて

    0

    オクラホマで

    おかげで私は問題を発見し、私は、これはどうやら私が実行しているマシンは、Hadoopのそれにインストールされている他の人

    を助けることを願っています。 hadoop versionを実行すると、Hadoop 2.6.0-cdh5.7が出力されました。1私のスパークバージョンも

    に矛盾している、私はかなりよく分からない場合はそれに関連するかどうかが、私はルートからの代わりに、いくつかの許可を起こしたことがスパークユーザーが

    を発行としての一致した後、火花を実行していました(私たちの場合、SparkをclouderaのSparkにマッチさせた)スパークユーザーとしてこのコードを実行すると、このエラーは起こりませんでした。

    +0

    上記の問題をどのように修正したか説明してください。自分自身が同じ問題を抱えている – developer

    関連する問題