首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

SparkContext初始化过程

SparkContext在构造的过程中,已经完成了各项服务的启动。因为Scala语法的特点,所有构造函数都会调用默认的构造函数,而默认构造函数的代码直接在类定义中。...除了初始化各类配置、日志之外,最重要的初始化操作之一是启动Task调度器和DAG调度器,相关代码如下: // 创建并启动Task调度器 val (sched, ts) = SparkContext.createTaskScheduler...下面摘录了createTaskScheduler函数的相关实现: private def createTaskScheduler( sc: SparkContext, master: String...cluster.YarnClusterScheduler") val cons = clazz.getConstructor(classOf[SparkContext])...org.apache.spark.scheduler.cluster.YarnClusterScheduler Backend") val cons = clazz.getConstructor(classOf[TaskSchedulerImpl], classOf[SparkContext

67140

第2天:核心概念之SparkContext

在今天的文章中,我们将会介绍PySpark中的一系列核心概念,包括SparkContext、RDD等。 SparkContext概念 SparkContext是所有Spark功能的入口。...默认情况下,PySpark已经创建了一个名为sc的SparkContext,并且在一个JVM进程中可以创建多个SparkContext,但是只能有一个active级别的,因此,如果我们在创建一个新的SparkContext...下面的代码块描述了在pyspark中一个SparkContext类有哪些属性: class pyspark.SparkContext ( master = None, appName...SparkContext实战 在我们了解了什么是SparkContext后,接下来,我们希望可以通过一些简单的PySpark shell入门示例来加深对SparkContext的理解。...Ps:我们没有在以下示例中创建任何SparkContext对象,因为默认情况下,当PySpark shell启动时,Spark会自动创建名为sc的SparkContext对象。

1.1K20

浅析SparkContext中的组件与创建流程

前言 在Spark框架中,应用程序的提交离不开Spark Driver,而Spark Driver的初始化始终围绕SparkContext的初始化,可以说SparkContext是Spark程序的发动机引擎...,有了它程序才能跑起来,在spark-core中,SparkContext重中之重,它提供了很多能力,比如生成RDD,比如生成广播变量等,所以学习SparkContext的组件和启动流程有助于剖析整个Spark...SparkContext组件概览 在SparkContext中包含了整个框架中很重要的几部分: SparkEnv:Spark的运行环境,Executor会依赖它去执行分配的task,不光Executor...Executor ContextCleaner:上下文清理器,用异步的方式去清理那些超出应用作用域范围的RDD、ShuffleDependency和Broadcast LiveListenerBus:SparkContext...初始化流程 在探究SparkContext初始化流程之前,先看一下这个类里有哪些属性,有助于我们去理解它在初始化的过程中做了哪些工作: /*spark conf对象*/ private var _conf

44230

SparkConf加载与SparkContext创建(源码阅读一)

val sc = new SparkContext(sparkConf) 然后我发现 它干了一大堆一大堆的变态的事情,首先我们看一下sparkContext的构造器: class SparkContext...这里,config.getBoolean("spark.driver.allowMultipleContexts", false)默认为false,曾经我以为只能在spark中创建一个Sparkcontext...对象,其实可以创建多个(我勒个去啊,那是不是说明可以同时创建streaming对象以及sparkContext对象,将streaming与sparksql同时声明,一起做数据处理了,有待验证) 如果需要创建多个...随之调用 SparkEnv.createDriverEnv(conf, isLocal, listenerBus, SparkContext.numDriverCores(master))方法,创建SparkEnv...3.下来呢,该创建MapOutputTrackerMaster或MapOutputTrackerWorker,那么他俩是什么呢?

80110

Spark Core源码精读计划4 | SparkContext提供的其他功能

目录 前言 SparkContext提供的其他功能 生成RDD 广播变量 累加器 运行Job SparkContext伴生对象 伴生对象中的属性 markPartiallyConstructed()方法...SparkContext还有一个伴生对象,里面涉及到一些SparkContext创建的内部机制。 本文就是SparkContext概况的收尾。在它的背后,还有形形色色的更加底层的逻辑等着我们去探索。...SparkContext伴生对象 前文代码#2.11里的createTaskScheduler()方法就来自SparkContext伴生对象。...setActiveContext()方法 与上面的方法相对,它是在SparkContext主构造方法的结尾处调用的,将当前的SparkContext标记为已激活。...这样,我们就对SparkContext有了相对全面的了解。 接下来,我们会选择几个SparkContext组件初始化逻辑中涉及到的重要组件,对它们的实现机制加以分析。

48320

Spark 源码(7) - Driver 启动之 SparkContext 初始化

一、SparkContext 初始化 上次阅读到 Master 通知 Worker 启动了一个 Driver,就是启动了一个 JVM,并且开始使用反射的方式执行 DriverWrapper 的 main...在 main 方法中,会执行我们提交的 jar 包中的 main 方法,也就是这个 JavaWordCount 程序的 main 方法: 然后开始创建 SparkContext SparkSession...spark = SparkSession.builder().appName("JavaWordCount").getOrCreate(); 点进去,可以看到: SparkContext.getOrCreate...(sparkConf) 这里 new 了一个 SparkContext(),然后开始看 SparkContext 的构造方法,这个方法尤其的长,但我们得抓住重点。...然后再回来看 StandaloneSchedulerBackend 的构造方法,构造方法里没有逻辑,接着回到 SparkContext 往下看。

66030

Spark内核分析之SparkContext初始化源码分析

如标题所说,我们先来看看SparkContext在Spark作业提交后做了哪些事情,工作流程如下图所示;(注意:本篇文章及后续源码分析所有内容全部基于spark1.3.0源码进行分析,后续不再赘述) ?...SparkContext初始化流程图 1.Spark作业提交以后,通过SparkContext的createTaskScheduler()方法来初始化scheduler(TaskSchedulerImpl...SparkContext初始入口 ? 初始化TaskScheduler等相关信息 ? 初始化taskScheduler线程池及调度方式 ? taskScheduler的start方法 ?...总结:以上即为SparkContext的初始化过程,源码涉及的类有:SparkContext,TaskSchedulerImpl,SparkDeploySchedulerBackend,AppClient...如需转载,请注明: 上一篇:Spark内核分析之spark作业的三种提交方式 本篇:Spark内核分析之SparkContext初始化源码分析

73830

如何保证一个Spark Application只有一个SparkContext实例

SparkContext构造函数最开始处获取是否允许存在多个SparkContext实例的标识allowMultipleContexts, 我们这里只讨论否的情况 ( 默认也是否, 即allowMultipleContexts...= new Object() //< 此处省略n行代码 } 结合以上三段代码, 可以看出保证一个Spark Application只有一个SparkContext实例的步骤如下: 通过SparkContext...伴生对象object SparkContext中维护了一个对象 SPARK_CONTEXT_CONSTRUCTOR_LOCK, 单例SparkContext在一个进程中是唯一的, 所以SPARK_CONTEXT_CONSTRUCTOR_LOCK...对象正在被构造或已经构造完成, 若allowMultipleContexts为true且确有正在或者已经完成构造的SparkContext对象, 则抛出异常, 否则完成SparkContext对象构造...看到这里, 有人可能会有疑问, 这虽然能保证在一个进程内只有唯一的SparkContext对象, 但Spark是分布式的, 是不是无法保证在在其他节点的进程内会构造SparkContext对象.

66430

PySpark|从Spark到PySpark

01 Spark是什么 简单的说Apache Spark是一个开源的、强大的分布式查询和处理引擎,它提供MapReduce的灵活性和可扩展性,但速度明显要快上很多;拿数据存储在内存中的时候来说,它比Apache...SparkContext(SC) 解读Spark执行过程之前,我们需要先了解一下SparkContext是什么SparkContextSparkContext是spark功能的主要入口。...每个JVM里只能存在一个处于激活状态的SparkContext,在创建新的SparkContext之前必须调用stop()来关闭之前的SparkContext。...更直白的可以说SparkContext是Spark的入口,相当于应用程序的main函数。目前在一个JVM进程中可以创建多个SparkContext,但是只能有一个激活状态的。...Spark详细执行流程 当一个Spark应用被提交时,首先需要为这个应用构建起基本的运行环境,即由任务控制节点(Driver)创建一个SparkContext,由SparkContext负责和资源管理器

3.3K10
领券