2016-03-04 13 views
18

में RDD और प्रदर्शन में विभाजन Pyspark में की संख्या, मैं एक सूची में से एक RDD बना सकते हैं और तय करते हैं कि कितने विभाजन के लिए कर सकते हैं:स्पार्क

sc = SparkContext() 
sc.parallelize(xrange(0, 10), 4) 

कैसे विभाजन मैं अपने RDD विभाजन करने का फैसला करता है की संख्या प्रदर्शन में प्रभाव? और यह मेरी मशीन के कोर की संख्या पर निर्भर करता है?

+1

मैं अत्यधिक अनुशंसा करता हूं [लिंक] (http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/)। "ट्यूनिंग समांतरता" खंड पर जाएं। यह बहुत जटिल हो जाता है, लेकिन यह निश्चित रूप से गहराई में है। वास्तव में –

उत्तर

24

प्राथमिक प्रभाव बहुत कम विभाजन या दूर भी कई विभाजन निर्दिष्ट द्वारा किया जाएगा।

बहुत कम विभाजन आप क्लस्टर में उपलब्ध सभी कोर का उपयोग नहीं करेंगे।

बहुत सारे विभाजन कई छोटे कार्यों के प्रबंधन में अत्यधिक ओवरहेड होगा।

दोनों के बीच प्रदर्शन पर कहीं अधिक प्रभावशाली है। 1000 से नीचे विभाजन संख्याओं के लिए इस बिंदु पर बहुत से छोटे कार्यों का निर्धारण करना अपेक्षाकृत कम प्रभाव है। यदि आपके पास हजारों विभाजनों के क्रम में है तो स्पार्क बहुत धीमा हो जाता है।

+1

। मेरे पास एक विशेष नौकरी है जो स्मृति से बाहर निकलने के लिए प्रयुक्त होती है जब 2 मिलियन बड़ी जेसन ऑब्जेक्ट्स 25K विभाजनों में विभाजित होती हैं। जब मैं 320 तक सहवास करता हूं, तो नौकरी एक मिनट से भी कम समय में चलती है। यह प्रदर्शन में सुधार करने के सबसे आसान तरीकों में से एक की तरह लगता है। –

+0

बहुत सारे विभाजनों का विपक्ष: अधिक fetches, अधिक डिस्क चाहता है। ड्राइवर को प्रति कार्य राज्य को ट्रैक करने की आवश्यकता है। स्रोत: स्लाइड 53, https://www.slideshare.net/Hadoop_Summit/why-your-spark-job-is-failing – ruhong

19

जावद्बा के उत्कृष्ट उत्तर में जोड़ने के लिए, मुझे याद है कि डॉक्स आपके समूह में सीपीयू कोर की संख्या 3 या 4 गुना सेट करने की अनुशंसा करते हैं ताकि उपलब्ध CPU कोर के बीच काम अधिक समान रूप से वितरित हो सके। मतलब, यदि आपके पास क्लस्टर में केवल 1 विभाजन प्रति सीपीयू कोर है, तो आपको पूरा करने के लिए सबसे लंबे समय तक चलने वाले कार्य का इंतजार करना होगा, लेकिन यदि आपने इसे तोड़ दिया था तो वर्कलोड तेजी से और धीमी गति से चलने वाले कार्यों के साथ शाम को संतुलित रूप से संतुलित होगा ।

+1

क्या आप दस्तावेज़ों में अनुशंसित संख्याओं को वर्णित करने के लिए संदर्भ प्रदान कर सकते हैं, कृपया? – sversch

+0

@sversch यह [hakernoon ब्लॉग पोस्ट] (https://hackernoon.com/managing-spark-partitions-with-coalesce-and-repartition-4050c57ad5c4) विभाजन की इष्टतम संख्या का निर्णय लेने में आपकी सहायता कर सकता है। –

+0

@sversch, https://spark.apache.org/docs/latest/tuning.html –