SparkContext
1,Spark程序在运行的时候分为Driver和Executors两部分;
2,Spark的程序编写是基于SparkContext的,具体来说包含两方面:
Spark编程的核心基础—RDD,是由SparkContext来最初创建(第一个RDD一定是由SparkContext来创建的);
Spark程序的调度优化也是基于SparkContext;
3,Spark程序的注册时通过SparkContext实例化时候生产的对象来完成的(其实是SchedulerBackend来注册程序)
4,Spark程序运行的时候要通过Cluster Manager获得具体的计算资源,计算资源的获取也是通过SparkContext产生的对象来申请的(其实是SchedulerBackend来获取计算资源的);
5,SparkContext崩溃或者结束的时候整个Spark程序也结束啦!
总结:
Spark程序是通过SparkContext发布到Spark集群的;
Spark程序的运行都是在SparkContext为核心的调度器的指挥下进行的;
SparkContext崩溃或者结束的时候整个Spark程序也结束啦!
三:SparkContext天堂内幕
1,SparkContext构建的顶级三大核心对象:DAGScheduler、TaskScheduler、ShedulerBackend,其中:
DAGScheduler是面向Job的Stage的高层调度器;
TaskScheduler是一个接口,根据具体的Cluster Manager的不同会有不同的实现,Standalone模式下具体的实现是TaskSche