Sto eseguendo un filtro in Spark utilizzando Filato e ricevendo l'errore di seguito. Qualsiasi aiuto è apprezzato, ma la mia domanda principale riguarda il motivo per cui il file non viene trovato.In che modo Spark on Yarn memorizza i file mescolati?
/HDATA/10/filato/nm/usercache/spettinato/AppCache/application_1428497227446_131967/scintilla-local-20.150.708,124954 millions-aa00/05/merged_shuffle_1_343_1
Sembra che Spark non riesce a trovare un file che ha stato memorizzato su HDFS dopo essere stato mescolato.
Perché Spark accede alla directory "/ hdata /"? Questa directory non esiste in HDFS, dovrebbe essere una directory locale o una directory HDFS?
Posso configurare la posizione in cui sono memorizzati i dati shuffled?
15/07/08 12:57:03 WARN TaskSetManager: Loss was due to java.io.FileNotFoundException
java.io.FileNotFoundException: /hdata/10/yarn/nm/usercache/spettinato/appcache/application_1428497227446_131967/spark-local-20150708124954-aa00/05/merged_shuffle_1_343_1 (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at org.apache.spark.storage.DiskBlockObjectWriter.open(BlockObjectWriter.scala:116)
at org.apache.spark.storage.DiskBlockObjectWriter.write(BlockObjectWriter.scala:177)
at org.apache.spark.scheduler.ShuffleMapTask$$anonfun$runTask$1.apply(ShuffleMapTask.scala:161)
at org.apache.spark.scheduler.ShuffleMapTask$$anonfun$runTask$1.apply(ShuffleMapTask.scala:158)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:158)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:99)
at org.apache.spark.scheduler.Task.run(Task.scala:51)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
EDIT: Ho capito un po 'di questo. La directory configurata da spark.local.dir è la directory locale utilizzata per archiviare gli RDD sul disco come da http://spark.apache.org/docs/latest/configuration.html
Sì, lo abbiamo osservato esattamente con 'FileNotFoundException'. L'errore "Spazio vuoto sul dispositivo" è apparso per alcune esecuzioni di lavori ma non per altri, per qualche motivo. – Mifeet