2016-11-16 8 views
5

मैं स्पार्कस्ट्रीमिंग कोड स्थापित करने की कोशिश कर रहा हूं जो कफका सर्वर से लाइन पढ़ता है लेकिन इसे किसी अन्य स्थानीय फ़ाइल में लिखे गए नियमों का उपयोग करके संसाधित करता है। मैं अन्य सभी अन्य चिंगारी सुविधाओं को लागू करने के लिए स्ट्रीमिंग डेटा और sparkContext के लिए streamingContext बनाने रहा हूँ - की तरह स्ट्रिंग परिवर्तन, स्थानीय फ़ाइलों आदिक्या स्पार्क कॉन्टेक्स्ट और स्ट्रीमिंग कॉन्टेक्स्ट एक ही प्रोग्राम में सह-अस्तित्व में हो सकता है?

val sparkConf = new SparkConf().setMaster("local[*]").setAppName("ReadLine") 
val ssc = new StreamingContext(sparkConf, Seconds(15)) 
ssc.checkpoint("checkpoint") 

    val topicMap = topics.split(",").map((_, numThreads.toInt)).toMap 
    val lines = KafkaUtils.createStream(ssc, zkQuorum, group, topicMap).map(_._2) 
    val sentence = lines.toString 

    val conf = new SparkConf().setAppName("Bi Gram").setMaster("local[2]") 
    val sc = new SparkContext(conf) 
    val stringRDD = sc.parallelize(Array(sentence)) 

पढ़ने लेकिन यह निम्न त्रुटि फेंकता

Exception in thread "main" org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true. The currently running SparkContext was created at: 
org.apache.spark.SparkContext.<init>(SparkContext.scala:82) 
org.apache.spark.streaming.StreamingContext$.createNewSparkContext(StreamingContext.scala:874) 
org.apache.spark.streaming.StreamingContext.<init>(StreamingContext.scala:81) 

उत्तर

11

एक आवेदन कर सकते हैं केवल एक SparkContext है। StreamingContextSparkContext पर बनाया गया है। बस SparkContext

val sc = new SparkContext(conf) 
val ssc = new StreamingContext(sc, Seconds(15)) 

का उपयोग कर निम्नलिखित निर्माता का उपयोग कर एसएससी StreamingContext बनाना होगा।

StreamingContext(conf: SparkConf, batchDuration: Duration) 

यह आंतरिक रूप से बनाने के एक और SparkContext

this(StreamingContext.createNewSparkContext(conf), null, batchDuration) 

SparkContext

ssc.sparkContext 
द्वारा StreamingContext से प्राप्त कर सकते हैं
संबंधित मुद्दे