gpt4 book ai didi

scala - Spark - 提交应用程序时出现错误 "A master URL must be set in your configuration"

转载 作者:行者123 更新时间:2023-12-03 05:13:37 25 4
gpt4 key购买 nike

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

错误信息如下:

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)

在上面的代码中,GroupEvolutionES是主类。错误消息显示“必须在您的配置中设置主 URL”,但我已向 spark-submit 提供了“--master”参数。

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

Spark版本:1.6.1

最佳答案

TLDR:

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

a list of the options for spark.master in spark 2.2.1

在尝试以本地模式运行简单的 Spark SQL java 程序后,我最终来到了此页面。为此,我发现可以使用以下方法设置spark.master:

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

我的答案更新:

需要明确的是,这不是您在生产环境中应该执行的操作。在生产环境中,spark.master 应该在其他几个位置之一指定:要么在 $SPARK_HOME/conf/spark-defaults.conf (这是 cloudera manager 将放置它的位置),要么在提交时在命令行上该应用程序。 (前 Spark 提交--主 yarn )。

如果您以这种方式将spark.master指定为“本地”,spark将尝试在单个jvm中运行,如下面的注释所示。如果您随后尝试指定 --deploy-mode cluster,您将收到错误“集群部署模式与主“本地”不兼容”。这是因为设置spark.master=local意味着您没有在集群模式下运行。

相反,对于生产应用程序,在主函数中(或在主函数调用的函数中),您应该简单地使用:

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

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

另外,也要明确这一点:--master 和“spark.master”是完全相同的参数,只是以不同的方式指定。在代码中设置spark.master,就像我上面的回答一样,将覆盖设置--master的尝试,并将覆盖spark-defaults.conf中的值,所以不要在生产中这样做。不过它非常适合测试。

另请参阅 this answer 。链接到 a list of the options for spark.master以及每个人实际上做了什么。

a list of the options for spark.master in spark 2.2.1

关于scala - Spark - 提交应用程序时出现错误 "A master URL must be set in your configuration",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38008330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com