2015-06-17 14 views
5

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

क्या इसे हल करने के कोई बेहतर तरीके हैं?

उत्तर

8

मैं आपको सीधे यूआई का उपयोग करने की सलाह दूंगा जो स्पार्क प्रदान करता है। वहाँ नए स्पार्क संस्करण (1.4.0) में भी https://spark.apache.org/docs/latest/monitoring.html

,: यह जानकारी और समय, कदम, नेटवर्क उपयोग, आदि के बारे में मेट्रिक्स का एक बहुत ...

आप यहाँ इसके बारे में अधिक जाँच कर सकते हैं प्रदान करता है अपने स्पार्क नौकरियों के चरणों और चरणों को समझने के लिए एक अच्छा विज़ुअलाइज़र है।

3

जैसा कि आपने कहा था, एक वितरित प्रक्रिया प्रोफाइलिंग एक एकल JVM प्रक्रिया को प्रोफाइल करने से अधिक कठिन है, लेकिन इसे प्राप्त करने के तरीके हैं।

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

उदाहरण के लिए, आप Etsy's statsd-jvm-profiler जावा एजेंट का उपयोग कर सकते हैं और इसे कॉन्फ़िगर करने के लिए कॉन्फ़िगर कर सकते हैं InfluxDB पर स्टैक निशान और फिर Flame Graphs का उपयोग करके उन्हें एकत्रित करें।

अधिक जानकारी के लिए स्पार्क अनुप्रयोगों की रूपरेखा पर मेरी पोस्ट की जाँच: https://www.paypal-engineering.com/2016/09/08/spark-in-flames-profiling-spark-applications-using-flame-graphs/

3

मैं एक लेख और हाल ही में एक स्क्रिप्ट, कि spark-submit लपेटता है, और एक स्पार्क आवेदन को क्रियान्वित करने के बाद एक लौ ग्राफ उत्पन्न लिखा है। यहाँ https://www.linkedin.com/pulse/profiling-spark-applications-one-click-michael-spector

स्क्रिप्ट है::

यहाँ लेख है https://raw.githubusercontent.com/spektom/spark-flamegraph/master/spark-submit-flamegraph

बस नियमित spark-submit के बजाय इसका उपयोग।

+0

यह बहुत अच्छा है। धन्यवाद! – Matt

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