SparkContext的初始化
Posted chengbao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SparkContext的初始化相关的知识,希望对你有一定的参考价值。
SparkDriver 用于提交用户的应用程序,
一、SparkConf
负责SparkContext的配置参数加载, 主要通过ConcurrentHashMap来维护各种`spark.*`的配置属性
class SparkConf(loadDefaults: Boolean) extends Cloneable with Logging with Serializable { import SparkConf._ /** Create a SparkConf that loads defaults from system properties and the classpath */ def this() = this(true) /** * 维护一个ConcurrentHashMap 来存储spark配置 */ private val settings = new ConcurrentHashMap[String, String]() @transient private lazy val reader: ConfigReader = { val _reader = new ConfigReader(new SparkConfigProvider(settings)) _reader.bindEnv(new ConfigProvider { override def get(key: String): Option[String] = Option(getenv(key)) }) _reader } if (loadDefaults) { loadFromSystemProperties(false) } /** * 加载spark.*的配置 * @param silent * @return */ private[spark] def loadFromSystemProperties(silent: Boolean): SparkConf = { // Load any spark.* system properties, 只加载spark.*的配置 for ((key, value) <- Utils.getSystemProperties if key.startsWith("spark.")) { set(key, value, silent) } this } }
二、SparkContext
以上是关于SparkContext的初始化的主要内容,如果未能解决你的问题,请参考以下文章
Spark 源码解读SparkContext的初始化之创建和启动DAGScheduler
Spark 源码解读SparkContext的初始化之创建任务调度器TaskScheduler
Spark源码剖析——SparkContext的初始化_创建任务调度器TaskScheduler
spark 源码分析之二 -- SparkContext 的初始化过程