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

Spark-提交应用程序时出现错误“必须在配置中设置主URL”

颛孙国源
2023-03-14

我有一个Spark应用程序,在本地模式下运行没有问题,但在提交到Spark cluster时出现了一些问题。

错误msg如下:

16/06/24 15:42:06 WARN scheduler.TaskSetManager: Lost task 2.0 in stage 0.0 (TID 2, cluster-node-02): java.lang.ExceptionInInitializerError
    at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579)
    at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579)
    at scala.collection.Iterator$$anon$14.hasNext(Iterator.scala:390)
    at org.apache.spark.util.Utils$.getIteratorSize(Utils.scala:1595)
    at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157)
    at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
    at org.apache.spark.scheduler.Task.run(Task.scala:89)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.spark.SparkException: A master URL must be set in your configuration
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:401)
    at GroupEvolutionES$.<init>(GroupEvolutionES.scala:37)
    at GroupEvolutionES$.<clinit>(GroupEvolutionES.scala)
    ... 14 more

16/06/24 15:42:06 WARN scheduler.TaskSetManager: Lost task 5.0 in stage 0.0 (TID 5, cluster-node-02): java.lang.NoClassDefFoundError: Could not initialize class GroupEvolutionES$
    at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579)
    at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579)
    at scala.collection.Iterator$$anon$14.hasNext(Iterator.scala:390)
    at org.apache.spark.util.Utils$.getIteratorSize(Utils.scala:1595)
    at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157)
    at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
    at org.apache.spark.scheduler.Task.run(Task.scala:89)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

在上面的代码中,GroupEevtionES是主类。错误msg说“必须在您的配置中设置主URL”,但我已将“--master”参数提供给spack-提交

谁知道如何解决这个问题?

Spark版本:1.6.1

共有3个答案

司健柏
2023-03-14

parkContext对象定义在哪里,它在main函数内部吗?

我也面临着同样的问题,我所犯的错误是我在main函数之外和类内部启动了spikContext。

当我在主函数中启动它时,它运行得很好。

仲元凯
2023-03-14

更换后为我工作

SparkConf sparkConf = new SparkConf().setAppName("SOME APP NAME");

SparkConf sparkConf = new SparkConf().setAppName("SOME APP NAME").setMaster("local[2]").set("spark.executor.memory","1g");

在stackoverflow上的其他线程上找到了此解决方案。

耿星雨
2023-03-14

TLDR:

.config("spark.master", "local")

spark的选项列表。spark 2.2.1硕士

在尝试在本地模式下运行一个简单的Spark SQL java程序后,我最终进入了这一页。为此,我发现我可以点燃火花。主机使用:

SparkSession spark = SparkSession
.builder()
.appName("Java Spark SQL basic example")
.config("spark.master", "local")
.getOrCreate();

我的答案更新:

需要明确的是,这不是您在生产环境中应该做的事情。在生产环境中,spark。master应该在其他几个地方之一指定:在$SPARK\u HOME/conf/SPARK defaults中。conf(cloudera manager将把它放在这里),或者在您提交应用程序时放在命令行上。(例如spark submit——主纱线)。

如果指定spark。通过这种方式,spark将尝试在单个jvm中运行,如下面的注释所示。如果然后尝试指定--deploy mode cluster,则会出现错误“cluster deploy mode与master“local”不兼容”。这是因为点燃了火花。master=local表示您没有在集群模式下运行。

相反,对于生产应用程序,在主功能内(或在主功能调用的功能中),您只需使用:

SparkSession
.builder()
.appName("Java Spark SQL basic example")
.getOrCreate();

这将使用命令行/配置文件中指定的配置。

另外,要明确的是:--master和“spark.master”是完全相同的参数,只是指定方式不同。设置火花。代码中的master,就像我上面的回答一样,将覆盖设置--master的尝试,并将覆盖spark默认值中的值。conf,所以不要在生产中这样做。不过这对测试来说很好。

另外,看这个答案。它链接到spark.master的选项列表以及每个选项的实际作用。

spark的选项列表。spark 2.2.1硕士

 类似资料:
  • 更新-使用MSbuild运行程序,我们看到以下错误 我们在声纳中设置了属性。项目属性声纳。反恐精英。警察。fxCopCmdPath=C:\Program Files(x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd。exe C#插件-4.1 MsBuild Runner-1.0 Son

  • 我正在尝试设置apache流。在下面的pom.xml中。当我添加 pom文件出现错误,表示:在这行发现多个注释:-无法传输org.glassfish.hk2:hk2-utils:jar:2.4.0-b34 http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0com.IoT.app.Kafka iot-kafka-producer 1.1.0 IoT

  • 编辑:这是针对rc1的,可能与当前发布的新netcore 1.0无关(6/29/2016)

  • 你可以查看或更改 Navicat Monitor 的应用程序设置,例如端口、网站网址和 IP 地址。若要配置应用程序设置,请前往“配置”->“应用程序设置”。 这里列出了 Navicat Monitor 的应用程序设置。你可以编辑以下设置: 端口 Navicat Monitor 将侦听的端口号。 网站网址 将用于警报电子邮件内的 Navicat Monitor 网站网址。 IP 地址 如果机器已被

  • 问题内容: 我正在尝试使用机械化提交表单,但遇到了错误(TypeError:ListControl,必须设置顺序)。在谷歌搜索了一段时间并尝试了几种不同的解决方案后,我无法解决该问题。我正在尝试提交所有字段。 通过机械化获取的表单数据(对于br.forms()打印中的f:f) 我当前的代码 请您协助并检查我是否为表单选项使用了正确的语法。谢谢 问题答案: 栏位会要求您提供整数清单,但您只提供一个整

  • org.springframework.beans.factory.XML.xmlBeanDefinitionStoreException:ServletContext资源[/web-inf/servlet-context.XML]的XML文档中的第38行无效;嵌套异常是org.xml.sax.SAXParseException;行号:38;列号:109;CVC-complex-type2.4.a