2015-07-14 23 views
8

स्पार्क इन का उपयोग करके sparkConf.set (..) का उपयोग करते हुए, वहाँ SparkConfSparkContext बनाने के लिए इस्तेमाल के लिए विकल्प निर्दिष्ट करने के लिए 3 प्राथमिक तरीके हैं:अनुकूलित SparkContext जब चिंगारी से खोल

  1. conf में गुण के रूप में /spark-defaults.conf
    • जैसे, लाइन: spark.driver.memory 4g
  2. आर्ग चिंगारी-खोल के रूप में या चिंगारी के लिये भेज
    • जैसे, spark-shell --driver-memory 4g ...
  3. अपने स्रोत कोड में, यह का उपयोग कर SparkContext बनाने के लिए पहले एक SparkConf इंस्टैंस को कॉन्फ़िगर:
    • जैसे, sparkConf.set("spark.driver.memory", "4g")

हालांकि, जब का उपयोग कर spark-shell, जब आप शेल प्रॉम्प्ट प्राप्त करते हैं, तब तक स्पार्ककॉन्टेक्स्ट पहले से ही आपके लिए बनाया गया है सक्षम नाम sc। स्पार्क-शैल का उपयोग करते समय, कॉन्फ़िगरेशन विकल्पों को सेट करने के लिए उपर्युक्त सूची में विकल्प # 3 का उपयोग कैसे करते हैं, यदि स्पार्क कोंटेक्स्ट पहले से ही किसी भी स्काला स्टेटमेंट को निष्पादित करने का मौका देने से पहले बनाया गया है?

विशेष रूप से, मैं Kyro serialization और GraphX ​​का उपयोग करने की कोशिश कर रहा हूं।

GraphXUtils.registerKryoClasses(sparkConf) 

मैं यह कैसे पूरा करते हैं जब spark-shell चल: GraphX ​​साथ Kryo उपयोग करने के लिए निर्धारित तरीके से जब SparkConf उदाहरण अनुरूपण निम्नलिखित स्काला बयान निष्पादित करने के लिए है?

उत्तर

27

स्पार्क 2.0+

आप लेकिन SparkSession.conf.set विधि का उपयोग करने क्रम पर कुछ विन्यास विकल्प सेट करने में सक्षम होना चाहिए यह ज्यादातर एसक्यूएल विन्यास तक सीमित है।

स्पार्क < 2,0

आप बस एक मौजूदा संदर्भ रोक सकता है और बनाने के लिए एक नया:

import org.apache.spark.{SparkContext, SparkConf} 

sc.stop() 
val conf = new SparkConf().set("spark.executor.memory", "4g") 
val sc = new SparkContext(conf) 

आप official documentation में पढ़ सकते हैं के रूप में:

एक SparkConf एक बार ऑब्जेक्ट स्पार्क को पास किया जाता है, इसे क्लोन किया जाता है और अब उपयोगकर्ता द्वारा संशोधित नहीं किया जा सकता है। स्पार्क रनटाइम पर कॉन्फ़िगरेशन को संशोधित करने का समर्थन नहीं करता है।

ताकि आप संदर्भ को रोक सकें, एक बार शैल शुरू होने के बाद ही यह एकमात्र लागू विकल्प है।

आप हमेशा आवश्यक पैरामीटर सेट करने के लिए कॉन्फ़िगरेशन फ़ाइलों या --conf तर्क spark-shell पर तर्क का उपयोग कर सकते हैं जो डिफ़ॉल्ट संदर्भ का उपयोग किया जाएगा।Kryo के मामले में आप पर एक नज़र रखना चाहिए:

  • spark.kryo.classesToRegister
  • spark.kryo.registrator

Compression and Serialization देखें Spark Configuration में।

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