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
    }
}
View Code

 

二、SparkContext

 

以上是关于SparkContext的初始化的主要内容,如果未能解决你的问题,请参考以下文章

Spark 源码解读SparkContext的初始化之创建和启动DAGScheduler

Spark 源码解读SparkContext的初始化之创建任务调度器TaskScheduler

Spark源码剖析——SparkContext的初始化_创建任务调度器TaskScheduler

spark 源码分析之二 -- SparkContext 的初始化过程

Spark源码剖析——SparkContext的初始化_TaskScheduler的启动

SparkContext:运行 Spark 作业时初始化 SparkContext 时出错