SparkContext实例可以与一个Spark集群连接,也提供与Spark系统交互的入口,那么如何创建一个合适特定集群的SparkContext实例?
SparkContext 对象必须有如下基本信息:
1.master:master URL 可以是如下格式之一:
local[n]:本地模式
spark://[sparkIp]:指向一个Spark集群
mesos://:如果spark部署在一个mesos集群上则指向一个mesos路径。
2.application name:可读的应用名字
3.sparkHome:Spark的根目录路径。
4.jars:提交作业时所要依赖的jar包路径
在scala程序中,可以通过下列语句创建SparkContext 实例:
val sparkContext= new SparkContext(master_path,"application name",["optional spark home path"],["optional list of jars"])
虽然所有的参数值都可以在代码中硬编码,但更好的方式是从环境变量中去读取对应的值,并且提供默认设置。这样当环境变化时也不需要重编译代码,就可以运行。代码如下:
import spark.sparkContext
import spark.sparkContext._
import scala.util.Properties
val master = Properties.envOrElse("MASTER","local")
val sparkHome=properties