频道栏目
首页 > 资讯 > 云计算 > 正文

出现AmasterURLmustbesetinyourconfiguration该如何解决异常

18-07-27        来源:[db:作者]  
收藏   我要投稿

异常解决: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)

}
相关TAG标签
上一篇:学习PythonforDataScience:如何科学的使用Python
下一篇:在centos7中查找文件、安装卸载yum等命令
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站