2016-05-03 5 views
1

以下のエラーが発生しています。 Spark_local_dirが設定され、十分なスペースとinodeが残っています。 は/ dev /マッパー/メタ200G 1.1G 199G 1%は/ var/log/Hadoopのスパーク - デバイス上にスペースが残っていない

にマウントされた

java.io.IOException: No space left on device 
     at java.io.FileOutputStream.writeBytes(Native Method) 
     at java.io.FileOutputStream.write(FileOutputStream.java:326) 
     at org.apache.spark.storage.TimeTrackingOutputStream.write(TimeTrackingOutputStream.java:58) 
     at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 
     at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126) 
     at org.xerial.snappy.SnappyOutputStream.dumpOutput(SnappyOutputStream.java:294) 
     at org.xerial.snappy.SnappyOutputStream.compressInput(SnappyOutputStream.java:306) 
     at org.xerial.snappy.SnappyOutputStream.rawWrite(SnappyOutputStream.java:245) 
     at org.xerial.snappy.SnappyOutputStream.write(SnappyOutputStream.java:107) 
     at org.apache.spark.io.SnappyOutputStreamWrapper.write(CompressionCodec.scala:190) 
     at org.apache.spark.storage.DiskBlockObjectWriter.write(BlockObjectWriter.scala:218) 
     at org.apache.spark.util.collection.ChainedBuffer.read(ChainedBuffer.scala:56) 
     at org.apache.spark.util.collection.PartitionedSerializedPairBuffer$$anon$2.writeNext(PartitionedSerializedPairBuffer.scala:137) 
     at org.apache.spark.util.collection.ExternalSorter.writePartitionedFile(ExternalSorter.scala:757) 
     at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:70) 
     at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:70) 
     at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41) 
     at org.apache.spark.scheduler.Task.run(Task.scala:70) 
     at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213) 
     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) 


cat spark-env.sh |grep -i local 
export SPARK_LOCAL_DIRS=/var/log/hadoop/spark 

ディスク使用量 DF -hは/ var/log/Hadoopの/スパーク ファイルシステムサイズ使用される無駄を使用%

のinode DF -iは/ var/log/Hadoopの/火花 ファイルシステムのiノードIUsed IFREE IUSE%「はあなたの場合は は/ dev /マッパー/メタ209711104 185 209710919 1%は/ var/log/Hadoopの

+0

これは、あなたが期待していないどこかに書いていることを意味します。 –

+0

または一時的な領域がいっぱいです。他のファイルシステムを見て、容量が近いかどうか確認してください。または、あなたが意図した以上に多くのデータを書いています。 –

+0

"と十分なスペースがあります。「明らかにそうではありません:-)あなたの設定、正確に何をしているか、どのくらいのデータを表示する必要があります。 –

答えて

0

にマウントされました再実行YARN yarn-clusterモードではn Sparkエグゼキュータとドライバの両方が使用するローカルディレクトリは、YARN config(yarn.nodemanager.local-dirs)から取得されます。 spark.local.dirあなたのenv変数は無視されます。

yarn-clientモードでYARNを実行している場合、エグゼキュータはYARN設定で再度設定されたローカルディレクトリを使用しますが、ドライバがenv変数で指定したものを使用しますYARNクラスタ上で

その設定を試してみてください。

あなたは少しより多くの情報in the documentation

を見つけることができると私も同じ問題に遭遇したrunning spark on yarn

2

上でも全体のセクションがあります。これを解決するために、まず、hdfs dfsadmin -reportを実行してhdfsディスクの使用状況を確認しました。

Non DFS Usedカラムは250 GBを超えました。これは、私のログやtmpや中間データがあまりにも多くのスペースを消費していたことを暗示しています。

du -lh | grep Grootから実行した後、私はspark/workが200 GBを消費していると考えました。

spark/workの中のフォルダを見た後、私は間違ってSystem.out.printlnのコメントを忘れてしまったので、ログが高いスペースを消費していたことを理解しました。

関連する問題