首页 理论教育 创建SparkContext的方法详解

创建SparkContext的方法详解

时间:2023-06-21 理论教育 版权反馈
【摘要】:SparkContext的创建过程首先要加载配置文件,然后创建SparkEnv、TaskScheduler和DAGScheduler,具体过程和源码分析如下。这里的构造函数有多种表达形式,当SparkContex获取了全部相关的本地配置信息后开始下一步操作。TaskScheduler是依据Spark的执行模式进行初始化的,详细代码在SparkContext中的createTaskScheduler方法中。以上4点是整个SparkContext的创建过程,这其中包含了很多重要的步骤,从这个过程中能理解Spark的初始启动情况。

创建SparkContext的方法详解

SparkContext的创建过程首先要加载配置文件,然后创建SparkEnv、TaskScheduler和DAGScheduler,具体过程和源码分析如下。

1.加载配置文件SparkConf

SparkConf在初始化时,需先选择相关的配置参数,包含master、appName、sparkHome、jars、environment等信息,然后通过构造方法传递给SparkContext,实现代码如下。这里的构造函数有多种表达形式,当SparkContex获取了全部相关的本地配置信息后开始下一步操作。

2.创建SparkEnv

创建SparkConf后就需要创建SparkEnv,这里面包括了很多Spark执行时的重要组件,包括MapOutputTracker、ShuffleFetcher、BlockManager等,在这里源码是通过SparkEnv类伴生对象SparkEnv Object内的createDriverEnv方法实现的,实现代码如下。

2.创建SparkEnv

创建SparkConf后就需要创建SparkEnv,这里面包括了很多Spark执行时的重要组件,包括MapOutputTracker、ShuffleFetcher、BlockManager等,在这里源码是通过SparkEnv类伴生对象SparkEnv Object内的createDriverEnv方法实现的,实现代码如下。

3.创建TaskScheduler

创建SparkEnv后,就需要创建SparkContext中调度执行方面的变量TaskScheduler,实现代码如下。

private[spark]var(schedulerBackend,taskScheduler)=

3.创建TaskScheduler(www.xing528.com)

创建SparkEnv后,就需要创建SparkContext中调度执行方面的变量TaskScheduler,实现代码如下。

private[spark]var(schedulerBackend,taskScheduler)=

TaskScheduler是依据Spark的执行模式进行初始化的,详细代码在SparkContext中的createTaskScheduler方法中。在这里以Standalone模式为例,它会将sc传递给TaskSchedulerImpl,然后创建SparkDeploySchedulerBackend并初始化,最后返回Scheduler对象,实现代码如下。

TaskScheduler是依据Spark的执行模式进行初始化的,详细代码在SparkContext中的createTaskScheduler方法中。在这里以Standalone模式为例,它会将sc传递给TaskSchedulerImpl,然后创建SparkDeploySchedulerBackend并初始化,最后返回Scheduler对象,实现代码如下。

4.创建DAGScheduler

创建TaskScheduler对象后,再将TaskScheduler对象传至DAGScheduler,用来创建DAGScheduler对象,实现代码如下。

4.创建DAGScheduler

创建TaskScheduler对象后,再将TaskScheduler对象传至DAGScheduler,用来创建DAGScheduler对象,实现代码如下。

创建DAGScheduler后再调用其start()方法将其启动。以上4点是整个SparkContext的创建过程,这其中包含了很多重要的步骤,从这个过程中能理解Spark的初始启动情况。

创建DAGScheduler后再调用其start()方法将其启动。以上4点是整个SparkContext的创建过程,这其中包含了很多重要的步骤,从这个过程中能理解Spark的初始启动情况。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈