当前位置: 首页 > 面试题库 >

在同一个JVM中检测到多个SparkContext

唐渊
2023-03-14
问题内容

根据我的最后一个问题,我必须为我的唯一JVM定义Multiple SparkContext。

我以另一种方式(使用Java)做到了:

SparkConf conf = new SparkConf();
conf.setAppName("Spark MultipleContest Test");
conf.set("spark.driver.allowMultipleContexts", "true");
conf.setMaster("local");

之后,我创建下一个源代码:

SparkContext sc = new SparkContext(conf);
SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);

然后在代码中:

JavaSparkContext ctx = new JavaSparkContext(conf);
JavaRDD<Row> testRDD = ctx.parallelize(AllList);

执行代码后,我收到下一条错误消息:

16/01/19 15:21:08 WARN SparkContext: Multiple running SparkContexts detected in the same JVM!
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:81)
test.MLlib.BinarryClassification.main(BinaryClassification.java:41)
    at org.apache.spark.SparkContext$$anonfun$assertNoOtherContextIsRunning$1.apply(SparkContext.scala:2083)
    at org.apache.spark.SparkContext$$anonfun$assertNoOtherContextIsRunning$1.apply(SparkContext.scala:2065)
    at scala.Option.foreach(Option.scala:236)
    at org.apache.spark.SparkContext$.assertNoOtherContextIsRunning(SparkContext.scala:2065)
    at org.apache.spark.SparkContext$.setActiveContext(SparkContext.scala:2151)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:2023)
    at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:61)
    at test.MLlib.BinarryClassification.main(BinaryClassification.java:105)

数字41105是行,其中两个对象都用Java代码定义。我的问题是,如果我已经使用set-method
,是否可以在同一JVM上执行多个SparkContext以及如何执行?


问题答案:

您确定需要将JavaSparkContext作为单独的上下文吗?您提到的上一个问题没有这么说。如果您已经拥有一个Spark
Context,则可以从中创建一个新的JavaSparkContext,而不用创建单独的上下文:

SparkConf conf = new SparkConf();
conf.setAppName("Spark MultipleContest Test");
conf.set("spark.driver.allowMultipleContexts", "true");
conf.setMaster("local");

SparkContext sc = new SparkContext(conf);
SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);

//Create a Java Context which is the same as the html" target="_blank">scala one under the hood
JavaSparkContext.fromSparkContext(sc)


 类似资料:
  • 如果使用基于回调的异步测试,如果done()多次调用Mocha,则会抛出错误。这对于捕获意外的双重回调非常方便。 it('double done', function(done) { // Calling `done()` twice is an error setImmediate(done); setImmediate(done); }); 运行上面的测试将给出以下错误消息: $ ./nod

  • 我需要帮助来识别边界,并将图像与原始图像进行比较。我需要指导如何我可以实现这通过处理或matlab或任何初学者。例如,请看下面的图像。 原始图像:

  • 我的目标是让一系列测试一个接一个地运行。我希望有一个“登录”脚本让用户登录,然后在同一窗口/驱动程序中继续执行以下脚本。我使用的是TestNG,所以我的测试套件设置在TestNG.xml文件中(如果有帮助的话)。 我要运行的下一个脚本:

  • 问题内容: 我有一个关于在一个JVM中创建多个Spark会话的查询。我已经读过,在早期版本的Spark中不建议创建多个上下文。Spark 2.0中的SparkSession也是如此。 我正在考虑从UI调用Web服务或servlet,然后该服务创建一个spark会话,执行一些操作并返回结果。这将导致为客户端的每个请求创建一个火花会话。是否推荐这种做法? 说我有一个类似的方法: 等等.... 如果将这

  • 目前我正在做一项与多边形相关的工作。多边形可以描述为几个顶点。 现在,我有一些多边形已经矢量 一种方法可以告诉我,一个点在哪个多边形内 我需要设置返回的多边形的颜色。 我的第一个问题是如何知道返回的多边形是否在向量内 我的第一个想法是使用无序的集合和比较(vertex.begin(),vertex)。end())。我不知道是否有更好的主意。 另一个问题是某些多边形可能包含相同的边。如何设计数据结构

  • 我的查询如下: > 在我的应用程序中,我需要在计划中同时运行多个pyspark应用程序。是否有任何方法可以同时从spark驱动程序运行多个pyspark应用程序,从而创建单独的sparkcontext对象? 如果第一个查询的答案是否定的,那么我可以运行一个应用程序从驱动程序,另一个从执行程序,但我可以一次运行它。 null 配置:VM-1:Hadoop主节点、Spark驱动程序和执行程序、Mong