spark启动过程sparkconf实例化
来源:互联网 发布:2016中超联赛助攻数据 编辑:程序博客网 时间:2024/06/07 16:02
SparkConf 的构造很简单,主要是通过 ConcurrentHashMap 来维护各种 Spark 的配置属性。 Spark 的配置属性都是以“spark.”开头的字符串。
现在开始介绍 SparkContext。 SparkContext 的初始化步骤如下:
1)创建 Spark 执行环境 SparkEnv;
2)创建 RDD 清理器 metadataCleaner;
3)创建并初始化 Spark UI;
4) Hadoop 相关配置及 Executor 环境变量的设置;
5)创建任务调度 TaskScheduler;
6)创建和启动 DAGScheduler;
7) TaskScheduler 的启动;
8)初始化块管理器 BlockManager(BlockManager 是存储体系的主要组件之一,将在第 4
章介绍);
9)启动测量系统 MetricsSystem;
10)创建和启动 Executor 分配管理器 ExecutorAllocationManager;
11) ContextCleaner 的创建与启动;
12) Spark 环境更新;
13)创建 DAGSchedulerSource 和 BlockManagerSource;
14)将 SparkContext 标记为激活。
SparkContext 的主构造器参数为 SparkConf,其实现如下。
class SparkContext(config: SparkConf) extends Logging with ExecutorAllocationClient {private val creationSite: CallSite = Utils.getCallSite()private val allowMultipleContexts: Boolean =config.getBoolean("spark.driver.allowMultipleContexts", false)SparkContext.markPartiallyConstructed(this, allowMultipleContexts)
上面代码中的 CallSite 存储了线程栈中最靠近栈顶的用户类及最靠近栈底的 Scala 或者Spark 核心类信息。 Utils.getCallSite 的详细信息见附录 A。 SparkContext 默认只有一个实例(由属性spark.driver.allowMultipleContexts 来控制,用户需要多个 SparkContext 实例时,可以将其设置为 true),方法 markPartiallyConstructed 用来确保实例的唯一性,并将当前 SparkContext标记为正在构建中。
接下来会对 SparkConf 进行复制,然后对各种配置信息进行校验,代码如下。
private[spark] val conf = config.clone()conf.validateSettings()if (!conf.contains("spark.master")) {throw new SparkException("A master URL must be set in your configuration")}if (!conf.contains("spark.app.name")) {throw new SparkException("An application name must be set in your configuration")}
从上面校验的代码看到必须指定属性 spark.master 和 spark.app.name,否则会抛出异常,结束初始化过程。 spark.master 用于设置部署模式, spark.app.name 用于指定应用程序名称。
- spark启动过程sparkconf实例化
- SparkConf
- spark源码阅读(十三)---sparkConf类
- idea sbt java.lang.NoClassDefFoundError: org/apache/spark/SparkConf
- spark学习-SparkSQL--07-SparkContext类和SparkConf类
- Spark --- 启动、运行、关闭过程
- Spark 启动过程(standalone)
- Spark --- 启动、运行、关闭过程
- Spark --- 启动、运行、关闭过程
- Spark集群启动过程分析
- Spark Streaming应用启动过程分析
- Spark分析之SparkContext启动过程分析
- 用Scala模拟Spark集群启动过程
- Spark Master和Work启动过程
- openstack启动实例内部过程
- ORACLE实例的启动过程
- 数据库实例启动关闭过程
- Spark启动过程(针对standalone)-spark-1.6.0
- S32K144 EVB之Bootloader
- Quartz时间配置
- java 别名现象
- 项目开发中,结构设计的常用工具类
- SpringMVC随笔——理解注解
- spark启动过程sparkconf实例化
- sort
- SQL注入
- 线性回归、局部加权线性回归、岭回归、lasso及逐步线性回归
- Linux ubuntu tar分包压缩方法
- 字母图形
- Word打开文档
- 文章标题
- 人到中年,职场半坡