首页 理论教育 SparkContext原理深度解析

SparkContext原理深度解析

时间:2023-06-29 理论教育 版权反馈
【摘要】:SparkContext是用户通往Spark集群的唯一入口,可以用来在Spark集群中创建RDD、累加器和广播变量。SparkContext也是整个Spark应用程序中至关重要的一个对象,可以说是整个Application运行调度的核心。如果用汽车来比喻Spark Application,那么SparkContext就是车子的引擎,而SparkConf是关于引擎的配置参数。

SparkContext原理深度解析

SparkContext是用户通往Spark集群的唯一入口,可以用来在Spark集群中创建RDD、累加器(Accumulator)和广播变量(Broadcast Variable)。SparkContext也是整个Spark应用程序(Application)中至关重要的一个对象,可以说是整个Application运行调度的核心(不是指资源调度)。

SparkContext的核心作用是初始化Spark应用程序运行所需的核心组件,包括高层调度器(DAGScheduler)、底层调度器(TaskScheduler)和调度器的通信终端(SchedulerBack-end),同时还会负责Spark程序向Master注册程序等。

通常,为了测试或者学习用Spark开发一个Application,在Application的main方法中,最开始几行编写的代码一般总是这样的:首先,会创建SparkConf实例,设置SparkConf实例的属性以便覆盖Spark默认配置文件spark-env.sh、spark-default.sh和log4j.properties中的参数;然后,SparkConf实例作为SparkContext类的唯一构造参数用来实例化SparkContext实例对象。SparkContext在实例化的过程中会初始化DAGScheduler、TaskScheduler和Sched-ulerBackend,而当RDD的action触发了作业(Job)后,SparkContext会调用DAGScheduler将整个Job划分成几个小的阶段(Stage),TaskScheduler会调度每个Stage的任务(Task)应该如何处理。另外,SchedulerBackend管理整个集群中为这个当前的Application分配的计算资源(即Executor)。(www.xing528.com)

如果用汽车来比喻Spark Application,那么SparkContext就是车子的引擎,而SparkConf是关于引擎的配置参数。

说明:只可以有一个SparkContext实例运行在于一个JVM内存中,所以在创建新的SparkContext实例之前,必须调用stop方法停止当前JVM唯一运行的SparkContext实例。

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

我要反馈