2014-06-13 10 views
8

पर एक आवेदन जमा करने के लिए स्पार्क-सबमिट का उपयोग करें मैं स्पार्क में नया हूं और मैं इसे ईसी 2 पर चलाने की कोशिश कर रहा हूं। मैं स्पार्क क्लस्टर लॉन्च करने के लिए स्पार्क-ec2 का उपयोग करके स्पार्क वेबपृष्ठ पर ट्यूटोरियल का पालन करता हूं। फिर, मैं क्लस्टर को एप्लिकेशन जमा करने के लिए spark-submit का उपयोग करने का प्रयास करता हूं। आदेश इस तरह दिखता है:ईसी 2 क्लस्टर

ERROR SparkDeploySchedulerBackend: Application has been killed. Reason: All masters are unresponsive! Giving up.

कृपया मुझे पता है कि यह कैसे तय करने के लिए करते हैं:

./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://ec2-54-88-9-74.compute-1.amazonaws.com:7077 --executor-memory 2G --total-executor-cores 1 ./examples/target/scala-2.10/spark-examples_2.10-1.0.0.jar 100

हालांकि, मैं निम्नलिखित त्रुटि मिली। धन्यवाद।

उत्तर

1

क्या आप अपनी स्थानीय मशीन पर या बनाए गए ईसी 2 नोड पर कमांड निष्पादित कर रहे हैं? यदि आप इसे स्थानीय रूप से कर रहे हैं, तो सुनिश्चित करें कि पोर्ट 7077 सुरक्षा सेटिंग्स में खुला है, क्योंकि यह डिफ़ॉल्ट रूप से बाहर से बंद है।

+0

मुझे स्थानीय स्तर से पाइस्पार्क या स्पार्क-खोल का उपयोग करके ec2 क्लस्टर पर नौकरी शुरू करने में समान समस्या है। मैं पहले से ही 7077 कनेक्शन स्वीकार करने के लिए इनबाउंड नियम जोड़ चुका हूं। क्या देता है? – Anthony

7

आप इस समस्या को देख रहे हैं क्योंकि आपके स्पार्क-स्टैंडअलोन क्लस्टर का मास्टर नोड ड्राइव (आपकी मशीन पर) पर एक टीसीपी कनेक्शन खोल सकता है। spark-submit का डिफ़ॉल्ट मोड क्लाइंट है जो इसे सबमिट करने वाली मशीन पर ड्राइवर चलाता है।

स्पार्क-तैनाती में एक नया क्लस्टर मोड जोड़ा गया था जो उस मास्टर को नौकरी सबमिट करता है जहां इसे क्लाइंट पर चलाया जाता है, जिससे प्रत्यक्ष कनेक्शन की आवश्यकता को हटा दिया जाता है। दुर्भाग्यवश यह मोड स्टैंडअलोन मोड में समर्थित नहीं है।

आप JIRA यहां मुद्दा यह है के लिए मतदान कर सकते हैं: https://issues.apache.org/jira/browse/SPARK-2260

SSH के माध्यम से अपने कनेक्शन सुरंग संभव है लेकिन विलंबता एक बड़ा मुद्दा होगा चालक को स्थानीय रूप से आपकी मशीन पर चल रहा हो जाएगा के बाद से।

+0

जेआईआरए मुद्दे को अब स्वीकृत के रूप में चिह्नित किया गया है – Tobber

2

यदि आपको अभी भी यह समस्या है तो मैं उत्सुक हूं ... लेकिन यदि कोई यहां पूछ रहा है तो एक संक्षिप्त उत्तर है। जैसा कि जॅपॉल्ड द्वारा स्पष्ट किया गया है, आपके स्पार्क-स्टैंडअलोन क्लस्टर का मास्टर नोड ड्राइव पर वापस आपकी टीसीपी कनेक्शन खोल सकता है (आपकी स्थानीय मशीन पर)। दो कामकाज संभव, परीक्षण और सफल हुए हैं।

(1) ईसी 2 प्रबंधन कंसोल से, एक नया सुरक्षा समूह बनाएं और अपने पीसी (सार्वजनिक आईपी) से आगे और बाद में टीसीपी सक्षम करने के लिए नियम जोड़ें। (मैंने जो किया वह टीसीपी नियमों को इनबाउंड और आउटबाउंड जोड़ रहा था) ... फिर इस सुरक्षा समूह को अपने मास्टर इंस्टेंस में जोड़ें। (राइट क्लिक -> नेटवर्किंग -> सुरक्षा समूह बदलें)। नोट: इसे जोड़ें और पहले से स्थापित सुरक्षा समूहों को न हटाएं।

यह समाधान काम अच्छी तरह से है, लेकिन अपने विशिष्ट परिदृश्य में, EC2 क्लस्टर के लिए स्थानीय मशीन से आपके आवेदन की तैनाती, आप आगे की समस्याओं का सामना करना पड़ेगा (संसाधन से संबंधित) तो अगला विकल्प सबसे अच्छा एक है

(2) के बाद आपकी .jar फ़ाइल (या .egg) इसे स्कैन का उपयोग कर मास्टर नोड पर कॉपी करें। आप यह लिंक कैसे करें इसके बारे में जानकारी के लिए http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html इस लिंक को देख सकते हैं; और मास्टर नोड से अपने आवेदन को तैनात करें। नोट: स्पार्क पहले से ही पूर्व-बीमाकृत है, इसलिए आप कुछ भी नहीं करेंगे लेकिन उसी स्थानीय कमांड को लिखते हैं जो आप अपनी स्थानीय मशीन पर ~/स्पार्क/बिन से लिखते हैं। यह सही काम करेगा।