当前位置:   article > 正文

Spark程序报错排查:A master URL must be set in your configuration_exception in thread "main" org.apache.spark.sparke

exception in thread "main" org.apache.spark.sparkexception: a master url mus

今天在在本地测试spark程序,点击运行main方法,报了如下错误:(spark版本为2.1.1)

  1. org.apache.spark.SparkException: A master URL must be set in your configuration
  2.     at org.apache.spark.SparkContext.<init>(SparkContext.scala:379)
  3.     at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2320)
  4.     at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868)
  5.     at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860)
  6.     at scala.Option.getOrElse(Option.scala:121)
  7.     at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)
  8.     at com.gimc.dsp.spark.main.dsp.OrderMappingMain.main(OrderMappingMain.java:60)
  9. 19/06/12 11:32:33 INFO SparkContext: Successfully stopped SparkContext
  10. Exception in thread "main" org.apache.spark.SparkException: A master URL must be set in your configuration
  11.     at org.apache.spark.SparkContext.<init>(SparkContext.scala:379)
  12.     at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2320)
  13.     at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868)
  14.     at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860)
  15.     at scala.Option.getOrElse(Option.scala:121)
  16.     at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)
  17.     at com.gimc.dsp.spark.main.dsp.OrderMappingMain.main(OrderMappingMain.java:60)

这个报错的原因在于没有设置程序运行的master,需要进行相应的配置。

传给spark的master有如下几种:

  1. local 本地单线程
  2. local[K] 本地多线程(指定K个内核)
  3. local[*] 本地多线程(指定所有可用内核)
  4. spark://HOST:PORT 连接到指定的 Spark standalone cluster master,需要指定端口。
  5. mesos://HOST:PORT 连接到指定的 Mesos 集群,需要指定端口。
  6. yarn-client客户端模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR。
  7. yarn-cluster集群模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR。

本地配置spark master的方式有如下两种:

一.通过spark代码进行配置

可以通过以下代码进行配置:

  1. //java版本
  2. SparkConf conf = new SparkConf();
  3. conf.setMaster("local"); //本地单线程运行
  4. conf.setAppName("testJob");
  5. JavaSparkContext sc = new JavaSparkContext(conf);
  1. //scala版本
  2. val sparkConf = new SparkConf()
  3. sparkConf.setMaster("local") //本地单线程运行
  4. sparkConf.setAppName("testJob")
  5. val sc = new SparkContext(sparkConf)

二.通过设置JVM运行参数进行配置

在idea上点击edit configuration,在左侧选择需要配置参数的项目,然后在右侧VM options中输入“-Dspark.master=local”,指示本程序本地单线程运行,再次运行即可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/569423
推荐阅读
相关标签
  

闽ICP备14008679号