当前位置: 首页 > 知识库问答 >
问题:

SparkContext和StreamingContext可以在同一个程序中共存吗?

柏正平
2023-03-14

我正在尝试设置一个Spark流代码,该代码从Kafka服务器读取行,但使用另一个本地文件中编写的规则来处理它。我正在为流式数据创建StreingContext,并为其他应用所有其他火花功能的人创建sparkContext——例如字符串操作、读取本地文件等

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)

共有2个答案

东方和志
2023-03-14

是的,你可以做到。你必须首先开始spark课程,然后

然后使用其上下文启动任意数量的流上下文

val spark = SparkSession.builder().appName("someappname").
config("spark.sql.warehouse.dir",warehouseLocation).getOrCreate()

val ssc = new StreamingContext(spark.sparkContext, Seconds(1))

易于理解的

公羊子真
2023-03-14

一个应用程序只能有一个SparkContextStreamingContext是在SparkContext上创建的。只需要使用SparkContext创建ssc StreamingContext

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

如果使用以下构造函数。

StreamingContext(conf: SparkConf, batchDuration: Duration)

它在内部创建另一个SparkContext

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

SparkContext可以从StreamingContext获取

ssc.sparkContext
 类似资料:
  • 我正在做一个遗留的Android项目,它使用一个非常旧的Jackson lib版本来解析从我们的web API带来的JSON。 我目前正在为该项目的一个新功能,并希望使用改型与Gson库作为其JSON解析器,因为这两个库提供了更多的灵活性和更干净的代码,如果与我们以前的库选择相比。 问题是,我将需要一些遗留POJO,那些已经有杰克逊注释。将Gson和Jackson注释放在同一个类中会产生冲突吗?或

  • 我需要在MongoDB上编写一些复杂的查询和一些简单的查询。我可以将MongoRepository用于简单查询,将MongoTemplate与查询或条件一起用于复杂查询实现相同的应用程序吗。 在相同的应用程序中同时使用MongoTemplate和MongoRepositories,这是一个好的设计吗。这种方法有什么缺点吗。 还有,编写包含大量谓词的复杂查询的最佳方法是什么,这些谓词涉及and、or

  • 问题内容: 根据我的最后一个问题,我必须为我的唯一JVM定义Multiple SparkContext。 我以另一种方式(使用Java)做到了: 之后,我创建下一个源代码: 然后在代码中: 执行代码后,我收到下一条错误消息: 数字和是行,其中两个对象都用Java代码定义。我的问题是,如果我已经使用-method ,是否可以在同一JVM上执行多个SparkContext以及如何执行? 问题答案: 您

  • 问题内容: 所以这是设置。 目前,我有两个Spark应用程序已初始化。我需要在它们之间传递数据(最好通过共享的sparkcontext / sqlcontext,以便我可以查询临时表)。我目前使用Parquet Files进行数据帧传输,但是还有其他方法吗? MasterURL指向同一SparkMaster 通过终端启动Spark: Java应用设置: 然后我稍后注册一个现有框架 和 星火 问题答

  • 我有一个使用Hibernate的Spring启动应用程序。我想运行该应用程序的多个实例,连接到同一个数据库。我不小心发现infinispan作为二级缓存。我想将infinispan实现为Hibernate的二级缓存。现在,如果我启动这个相同的Spring启动应用程序的多个实例,所有不同实例的infinispan缓存会相互共享吗?

  • 本文向大家介绍如果一个元素上同时存在class和:class可以吗?相关面试题,主要包含被问及如果一个元素上同时存在class和:class可以吗?时的应答技巧和注意事项,需要的朋友参考一下 如果一个元素上同时存在class和:class可以吗?