6

मौजूद नहीं है API कॉल के माध्यम से एक अजगर स्पार्क आवेदन चल रहा है - प्रतिक्रिया - आवेदन प्रस्तुत करने पर SparkContext त्रुटि - कार्यकर्ता</p> <p>मेरे अजगर आवेदन में मौजूद है में विफल SSH - फ़ाइल नहीं मिली/tmp/चिंगारी घटनाओं

/root/spark/work/driver-id/wordcount.py 

त्रुटि

/root/spark/work/driver-id/stderr 

में पाया जा सकता निम्न त्रुटि दिखाएँ -

Traceback (most recent call last): 
    File "/root/wordcount.py", line 34, in <module> 
    main() 
    File "/root/wordcount.py", line 18, in main 
    sc = SparkContext(conf=conf) 
    File "/root/spark/python/lib/pyspark.zip/pyspark/context.py", line 115, in __init__ 
    File "/root/spark/python/lib/pyspark.zip/pyspark/context.py", line 172, in _do_init 
    File "/root/spark/python/lib/pyspark.zip/pyspark/context.py", line 235, in _initialize_context 
    File "/root/spark/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py", line 1064, in __call__ 
    File "/root/spark/python/lib/py4j-0.9-src.zip/py4j/protocol.py", line 308, in get_return_value 
py4j.protocol.Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext. 
: java.io.FileNotFoundException: File file:/tmp/spark-events does not exist. 
    at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:402) 
    at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:255) 
    at org.apache.spark.scheduler.EventLoggingListener.start(EventLoggingListener.scala:100) 
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:549) 
    at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:59) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:234) 
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:381) 
    at py4j.Gateway.invoke(Gateway.java:214) 
    at py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:79) 
    at py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:68) 
    at py4j.GatewayConnection.run(GatewayConnection.java:209) 
    at java.lang.Thread.run(Thread.java:745) 

यह इंगित करता है -/tmp/चिंगारी घटनाओं मौजूद नहीं है - जो सच है हालांकि, wordcount.py

from pyspark import SparkContext, SparkConf 

... few more lines ... 

def main(): 
    conf = SparkConf().setAppName("MyApp").setMaster("spark://ec2-54-209-108-127.compute-1.amazonaws.com:7077") 
    sc = SparkContext(conf=conf) 
    sc.stop() 

if __name__ == "__main__": 
    main() 
+0

घटना लॉगिंग अक्षम करने से मदद कर सकता है के अनुसार:। 'SparkConf() सेट (" spark.eventLog.enabled "," गलत ") ...' – asmaier

उत्तर

7

/tmp/spark-events में स्थान कि स्पार्क दुकान घटनाओं लॉग है। बस मास्टर निर्देशिका में इस निर्देशिका को बनाएँ और आप सेट हैं।

$mkdir /tmp/spark-events 
$ sudo /root/spark-ec2/copy-dir /tmp/spark-events/ 
RSYNC'ing /tmp/spark-events to slaves... 
ec2-54-175-163-32.compute-1.amazonaws.com 
+0

की कोशिश की निर्देशिका बनाने में मास्टर मशीन में। एपीआई कॉल का पुनः प्रयास किया। त्रुटि –

+0

ओह बनी रहती है। इसलिए मुझे श्रमिकों में इसे दोहराना पड़ा। त्रुटि हल हो गई थी। धन्यवाद –

5

अपने स्थानीय मशीन पर सेटअप करने के लिए कोशिश कर रहा है जबकि मेरे चिंगारी इतिहास सर्वर, मैं एक ही 'फ़ाइल फ़ाइल।:/Tmp/चिंगारी घटनाओं मौजूद नहीं है' था त्रुटि। मैंने अपनी लॉग निर्देशिका को एक गैर-डिफ़ॉल्ट पथ में अनुकूलित किया था। इसे हल करने के लिए, मुझे 2 चीजें करने की ज़रूरत थी।

  1. संपादित $ SPARK_HOME/conf/चिंगारी defaults.conf - इन 2 लाइनों spark.history.fs.logDirectory /mycustomdir spark.eventLog.enabled true
  2. जोड़ें/mycustomdir करने से/tmp/चिंगारी घटनाओं एक लिंक बनाने के।
    ln -fs /tmp/spark-events /mycustomdir आदर्श रूप से, चरण 1 ने पूरी तरह से मेरी समस्या हल कर दी होगी, लेकिन मुझे अभी भी लिंक बनाने की आवश्यकता है, इसलिए मुझे संदेह है कि शायद एक और सेटिंग याद आई हो। किसी भी तरह, एक बार मैंने ऐसा करने के बाद, मैं अपना इतिहास सर्वर चलाने में सक्षम था और मेरी वेबूई में लॉग इन नई नौकरियां देख सकता था।
+0

मुझसे काम किया लेकिन मुझे रिवर्स ऑर्डर के साथ सीएम लिंक बनाना पड़ा।मैंने ln -fs/mycustomdir किया था।/Tmp/चिंगारी घटनाओं – george

0

मैंने अभी {मास्टर} नोड पर /tmp/spark-events बनाया और फिर इसे क्लस्टर पर काम करने के लिए अन्य नोड्स में वितरित किया।

mkdir /tmp/spark-events 
rsync -a /tmp/spark-events {slaves}:/tmp/spark-events 

मेरी चिंगारी default.conf:

spark.history.ui.port=18080 
spark.eventLog.enabled=true 
spark.history.fs.logDirectory=hdfs:///home/elon/spark/events 
0

उपयोग ग्राहक/चालक कार्यक्रम के लिए spark.eventLog.dir

spark.eventLog.dir=/usr/local/spark/history 

और इतिहास के लिए spark.history.fs.logDirectory का उपयोग सर्वर

spark.history.fs.logDirectory=/usr/local/spark/history 

जैसा कि उल्लेख किया गया है: How to enable spark-history server for standalone cluster non hdfs mode

कम से कम स्पार्क संस्करण 2.2.1

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