spark源码一参数初始化和context组成

前言 spark任务启动时获取参数方式

在启动spark程序时先要进行参数配置,也就是通过new SparkConf()来设置spark程序所需的参数,底层数据结构是 key-value pairs

 private val settings = new ConcurrentHashMap[String, String]()

spark获取参数方式有三种:
1、源自于系统参数 以spark.参数开头的属性,

  if (loadDefaults) {
    loadFromSystemProperties(false)
  }

  private[spark] def loadFromSystemProperties(silent: Boolean): SparkConf = {
    // Load any spark.* system properties
    for ((key, value) <- Utils.getSystemProperties if key.startsWith("spark.")) {
      set(key, value, silent)
    }
    this
  }

2、使用sparkConf相关API设置的那部分

  /** Set a configuration variable. */
  def set(key: String, value: String): SparkConf = {
    set(key, value, false)
  }

3、从别的SparkConf克隆过来

 /** Copy this object */
  override def clone: SparkConf = {
    val cloned = new SparkConf(false)
    settings.entrySet().asScala.foreach { e =>
      cloned.set(e.getKey(), e.getValue(), true)
    }
    cloned
  }

sparkContext介绍

每个driver都包含一个sc对象,spark driver端初始化围绕着 SparkContext初始化,因此需要了解sparkContext包含哪些部分:

  1. SparkEnv : spark运行时环境
  2. SparkStatusTracker:job stage的监控信息
  3. TaskScheduler:作业调度器
  4. DAGScheduler:DAG,负责创建job,将dag中的RDD划分到不同的stage、提交stage等,
  5. sparkUI界面
  6. ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值