2014-10-14 15 views
16

मैं यह समझने की कोशिश कर रहा हूं कि अपाचे स्पार्क में विभाजन कैसे किया जाता है। क्या आप कृपया मदद कर सकते हैं?स्पार्क में विभाजन कैसे काम करता है?

  • एक गुरु और 1 कोर प्रत्येक
  • एक फ़ाइल आकार

में 10 की count.txt MB के साथ दो नोड्स कितने विभाजन बनाने के निम्नलिखित है:

यहाँ परिदृश्य है?

rdd = sc.textFile(count.txt) 

क्या फ़ाइल का आकार विभाजन की संख्या पर कोई प्रभाव डालता है?

+0

आपने स्वीकृति/टिप्पणी के बिना उत्तर क्यों छोड़ा? – gsamaras

उत्तर

21

डिफ़ॉल्ट रूप से प्रत्येक एचडीएफएस विभाजन के लिए विभाजन बनाया जाता है, जो डिफ़ॉल्ट रूप से 64 एमबी (Spark Programming Guide से) होता है।

एक और पैरामीटर defaultMinPartitions पास करना संभव है जो स्पार्क बनाए जाने वाले विभाजनों की न्यूनतम संख्या को ओवरराइड करता है। यदि आप इस मान को ओवरराइड नहीं करते हैं तो स्पार्क कम से कम कई विभाजनों को spark.default.parallelism के रूप में बनाएगा।

चूंकि spark.default.parallelism आपके क्लस्टर में सभी मशीनों में कोर की संख्या माना जाता है, मेरा मानना ​​है कि आपके मामले में कम से कम 3 विभाजन बनाए जाएंगे।

आप repartition या coalesce एक आरडीडी भी कर सकते हैं जो विभाजन की संख्या को बदलने के लिए बदले में उपलब्ध समांतरता की कुल मात्रा को प्रभावित करता है।

+2

@jacek 'default.parallelism' (3 विभाजन बनाया गया) और डेटा फ़ाइल 10 एमबी (एचडीएफएस पर एकल ब्लॉक) के मामले में, स्पार्क विभाजन में कितना डेटा होगा? यह होगा: ** 1। 3 बराबर भागों में विभाजित (3.3 एमबी प्रत्येक) और निष्पादकों को भेजा गया। ** _2। विभाजित नहीं (पी 1 = 10 एमबी, पी 2 = पी 3 = 0 एमबी) और डेटा लोकैलिटी के कारण उसी नोड पर निष्पादित ._ ** 3। सभी 3 विभाजनों में डेटा का यादृच्छिक शफल। ** –

+1

@mrmcgrep, एक भ्रम है, डिफ़ॉल्ट रूप से आपने पहले बयान में कहा था कि प्रत्येक एचडीएफएस ब्लॉक के लिए एक विभाजन बनाया जाएगा और फिर तीसरे कथन में आपने कहा था कि अगर हम नहीं करते हैं 'डिफ़ॉल्टMinPartitions' ओवरराइड करें, तो यह कम से कम कई विभाजन 'spark.default.parallelism' के रूप में बनाएगा जो कि क्लस्टर में कोर की संख्या होने का अनुमान है। तो क्या यह 'विभाजन = एचडीएफएस विभाजन' या '= कोर की संख्या 'बनाएगा? – Explorer

+0

@LiveAndLetLive मेरा मानना ​​है कि ये सभी न्यूनतम हैं। आपके पास कम से कम तीन विभाजनों में से सबसे कम विभाजन होंगे। – mrmcgreg

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