2015-11-09 13 views
5

से रिमोट स्पार्क क्लस्टर को कोड कैसे सबमिट करें मेरे पास दो क्लस्टर हैं, स्थानीय वर्चुअल मशीन में एक रिमोट क्लाउड में से एक है। स्टैंडअलोन मोड में दोनों क्लस्टर।IntelliJ IDEA

मेरे पर्यावरण:

Scala: 2.10.4 
Spark: 1.5.1 
JDK: 1.8.40 
OS: CentOS Linux release 7.1.1503 (Core) 

स्थानीय क्लस्टर:

स्पार्क मास्टर: स्पार्क: // local1: 7077

दूरस्थ क्लस्टर:

स्पार्क मास्टर: स्पार्क: // रिमोट 1: 707 7

मैं इस समाप्त करना चाहते हैं: (मेरी laptp पर) स्थानीय स्तर पर IntelliJ विचार में

लिखें कोड (बस सरल शब्द गिनती), और spark://local1:7077 और spark://remote1:7077 को स्पार्क मास्टर URL सेट करें, तो चलाने मेरी IntelliJ IDEA में कोड। यही है, मैं नौकरी जमा करने के लिए spark-submit का उपयोग नहीं करना चाहता हूं।

लेकिन मैं कुछ समस्या है:

जब मैं स्थानीय क्लस्टर का उपयोग करें, सब कुछ अच्छी तरह से चला जाता है। IntelliJ IDEA में कोड चलाएं या स्पार्क-सबमिट का उपयोग क्लस्टर को नौकरी सबमिट कर सकते हैं और नौकरी खत्म कर सकते हैं।

लेकिन जब मैं दूरस्थ क्लस्टर का उपयोग करें, मैं एक चेतावनी लॉग मिला:

TaskSchedulerImpl: प्रारंभिक काम किसी भी संसाधनों स्वीकार नहीं किया है; अपने क्लस्टर यूआई जाँच सुनिश्चित करना है कि श्रमिकों पंजीकृत हैं और पर्याप्त संसाधन

यह पर्याप्त संसाधन नहीं पर्याप्त स्मृति है के लिए!

और यह लॉग प्रिंटिंग जारी रखता है, कोई और कार्रवाई नहीं करता है। spark-submit और IntelliJ IDEA दोनों में कोड चलाने के परिणाम समान हैं।

मैं जानना चाहता हूँ:

  • यह दूरस्थ क्लस्टर के लिए IntelliJ विचार से कोड प्रस्तुत करने के लिए संभव है?
  • यदि यह ठीक है, तो क्या इसे कॉन्फ़िगरेशन की आवश्यकता है?
  • मेरी समस्या का कारण बनने के संभावित कारण क्या हैं?
  • मैं इस समस्या को कैसे संभाल सकता हूं?

बहुत बहुत धन्यवाद!

अद्यतन

एक समान प्रश्न here नहीं है, लेकिन मुझे लगता है कि मेरी दृश्य अलग है। जब मैं IntelliJ IDEA में अपने कोड चलाता हूं, और स्थानीय वर्चुअल मशीन क्लस्टर में Spark Master सेट करता हूं, तो यह काम करता है। लेकिन मुझे इसके बजाय Initial job has not accepted any resources;... चेतावनी मिली।

मैं जानना चाहता हूं कि सुरक्षा नीति या आतिशबाजी इसका कारण बन सकती है या नहीं?

+0

[किसी अन्य सर्वर पर स्पार्क के साथ ग्रहण पर स्पार्क कोड चलाना] का संभावित डुप्लिकेट [http://stackoverflow.com/questions/33591481/running-spark-code-on-eclipse-with-spark-being-install -ऑन-एंड-सर्वर) –

+0

@ अल्बर्टो बोन्सेंटो लेकिन वह अन्य पोस्ट (जो आपका है) * नहीं दिखाता है कि आईजे से सीधे कैसे चलना है: इसे जार बनाने और 'स्पार्क-सबमिट' का उपयोग करने की आवश्यकता है। – javadba

उत्तर

3

प्रोग्राम को व्यवस्थित रूप से सबमिट करना (उदा। SparkSubmit के माध्यम से) काफी मुश्किल है। कम से कम पर्यावरण सेटिंग्स और विचारों की एक किस्म है - spark-submit स्क्रिप्ट द्वारा नियंत्रित - स्केल कार्यक्रम के भीतर दोहराना मुश्किल है। मैं अभी भी इसे प्राप्त करने के बारे में अनिश्चित हूं: और इस विषय पर स्पार्क डेवलपर समुदाय के भीतर कई लंबे समय तक चलने वाले धागे रहे हैं।

मेरा जवाब यहाँ अपनी पोस्ट के एक हिस्से के बारे में है: विशेष रूप से

TaskSchedulerImpl: प्रारंभिक काम किसी भी संसाधनों स्वीकार नहीं किया है; जाँच अपने क्लस्टर यूआई सुनिश्चित करना है कि श्रमिकों पंजीकृत हैं और है पर्याप्त संसाधन

कारण आम तौर पर किया जाता है वहाँ क्या क्लस्टर पर उपलब्ध थे की तुलना में अपने काम से अनुरोध किया स्मृति और/या कोर की संख्या पर एक बेमेल थे । संभवत: जब IJ से प्रस्तुत करने

$ SPARK_HOME/conf/चिंगारी defaults.conf

ठीक से मौजूदा क्लस्टर पर अपने कार्य के लिए आवश्यक मानकों से मेल खाते नहीं थे। आप अद्यतन करने की आवश्यकता हो सकता है:

spark.driver.memory 4g 
spark.executor.memory 8g 
spark.executor.cores 8 

आप सत्यापित करने के लिए मानकों का अनुरोध आपने किया वास्तव में क्लस्टर पर उपलब्ध हैं पोर्ट 8080 पर चिंगारी ui देख सकते हैं।