在之前学习spark时遇到的一个问题,这个问题比较简单,是刚开始学习时遇到的,属于最简单的问题。
org.apache.spark.SparkException: A master URL must be set in your configuration
at org.apache.spark.SparkContext.<init>(SparkContext.scala:401)
at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:59)
at dsl.spark.test.WordCount.main(WordCount.java:22)
这个问题主要是因为没有为程序设置Master,程序如下:
SparkConf conf = new SparkConf().setAppName("WordCount");
JavaSparkContext sc = new JavaSparkContext(conf);
将第一行的代码设置Master即可,如下:
SparkConf conf = new SparkConf().setAppName("WordCount").setMaster("local");
Master的设置有以下的几种情况:
local
在本地单线程运行程序
local[N] 可以指定在本地使用N个线程运行程序
local[*] 设置为本地最大可用线程运行程序
spark://host:port standalone模式,连接到指定的 Spark standalone cluster,需要指定端口。
mesos://host:port 连接到指定的 Mesos 集群,需要指定端口。
yarn-client 客户端模式 连接到 yarn 集 群。这种模式下,如果客户端停止,运行程序停止。
yarn-cluster 集群模式 连接到yarn 集群 。这种模式下,程序提交到集群中,不能立刻停止,需要等到集群运行结束。
local[N] 可以指定在本地使用N个线程运行程序
local[*] 设置为本地最大可用线程运行程序
spark://host:port standalone模式,连接到指定的 Spark standalone cluster,需要指定端口。
mesos://host:port 连接到指定的 Mesos 集群,需要指定端口。
yarn-client 客户端模式 连接到 yarn 集 群。这种模式下,如果客户端停止,运行程序停止。
yarn-cluster 集群模式 连接到yarn 集群 。这种模式下,程序提交到集群中,不能立刻停止,需要等到集群运行结束。