当前位置:   article > 正文

异常解决:A master URL must be set in your configuration

a master url must be set in your configuration

异常解决:A master URL must be set in your configuration

标签(空格分隔): 异常积累


在写spark程序的时候,许多人会遇到以下这个报错,包括我自己也遇到过,当时郁闷了很久

QQ图片20160620201349.png-13.3kB

报错说在配置中必须设置一个master URL.但是我明明在提交应用的时候设置了–master呀,为什么说我没有,于是非常惊讶,怀疑是不是计算机自己疯掉了。

其实这是初学者很容易犯的错误,原因在于没有真正理解spark分布式或伪分布式的运行原理。出错的小伙伴往往把创建spark实例,或者sc.textFile读取数据等放在了main函数的外面。像下面这样写是错误的:

QQ图片20160620202112.png-7.2kB

在伪分布式中,一个spark 应用对应了一个main函数,放在一个driver里,driver里有一个对应的实例(spark context).driver 负责向各个节点分发资源以及数据。那么如果你把创建实例放在了main函数的外面,driver就没法分发了。所以如果这样写在local模式下是可以成功的,在分布式就会报错。(好吧,解释地有点直白和不专业)

所以正确的写法应该是这样:

def main(args: Array[String]) {

  val sparkConf = new SparkConf().setAppName("XXXX")
  val sc = new SparkContext(sparkConf)

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

闽ICP备14008679号