2015-07-08 11 views
7

मैं यार्न का उपयोग करके स्पार्क में एक फ़िल्टर कर रहा हूं और नीचे दी गई त्रुटि प्राप्त कर रहा हूं। किसी भी मदद की सराहना की जाती है, लेकिन मेरा मुख्य सवाल यह है कि फ़ाइल क्यों नहीं मिली है।यार्न स्टोर पर स्पार्क फ़ाइलों को कैसे घुमाता है?

/hdata/10/यार्न/एनएम/usercache/spettinato/appcache/application_1428497227446_131967/चिंगारी-स्थानीय-20150708124954-aa00/05/merged_shuffle_1_343_1

ऐसा नहीं है कि स्पार्क प्रकट होता है कि एक फ़ाइल नहीं मिल सकता है shuffled के बाद एचडीएफएस में संग्रहीत किया गया है।

स्पार्क एक्सेसिंग निर्देशिका "/ hdata /" क्यों है? यह निर्देशिका एचडीएफएस में मौजूद नहीं है, क्या यह एक स्थानीय निर्देशिका या एचडीएफएस निर्देशिका होना चाहिए?
क्या मैं उस स्थान को कॉन्फ़िगर कर सकता हूं जहां डेटा को संग्रहीत किया जाता है?

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) 

संपादित करें: मैं इस में से कुछ पता लगा। निर्देशिका spark.local.dir द्वारा विन्यस्त स्थानीय रूप में प्रति http://spark.apache.org/docs/latest/configuration.html

उत्तर

2

सबसे अधिक संभावना जवाब है कि काम की मृत्यु हो गई है डिस्क के लिए RDDs स्टोर करने के लिए इस्तेमाल किया निर्देशिका है। उदाहरण के लिए OutOfMemory या अन्य अपवाद से।

4

मैं आपके सिस्टम पर छोड़ी गई जगह की जांच करने का सुझाव दूंगा। मैं कार्लोस के रूप में कहूंगा कि कार्य मर गया, और यही कारण है कि अंतरिक्ष की कमी के कारण स्पार्क एक शफल फ़ाइल नहीं लिख सका।

अपने कर्मचारियों की ./work निर्देशिका में java.io.IOException: No space left on device grepping का प्रयास करें।

+1

हाँ, हमने बिल्कुल देखा है कि 'FileNotFoundException' के साथ। कुछ डिवाइस निष्पादन के लिए 'डिवाइस पर छोड़ी गई कोई जगह नहीं छोड़ी गई' लेकिन कुछ कारणों से दूसरों के लिए नहीं। – Mifeet

संबंधित मुद्दे