Spark程序的入口之SparkContext

       今天讲的是sparkContext,这是spark程序的入口,每次写spark程序,首先你得: new sparkContext(conf),参数里是sparkConf,也就是一些相关配置参数。SparkContext 允许driver 应用程序通过资源管理器访问集群,这个资源管理器可以是yarn,mesos,或者是spark集群管理器。sparkContext具体干哪些活呢?细节可以说比较复杂的,我们这里只抽取最重要的几点进行讲解。

       主体流程图如下:

Spark程序的入口之SparkContext_第1张图片


   下面我们一一来讲解:

  1. 加载配置文件SparkConf,创建SparkEnv

  2. 创建TaskScheduler

  3. 创建DAGScheduler

  4. 创建SparkUI

   


 1.加载配置文件SparkConf,创建SparkEnv

     这个很好理解,我们需要在程序指定像master地址,appName,,,,,,,这是初始化sparkContext的时候要加载配置文件或者相关配置参数,准备好spark环境,我们可以看下sparkContext的源码:


Spark程序的入口之SparkContext_第2张图片

Spark程序的入口之SparkContext_第3张图片

2.创建TaskScheduler

Spark程序的入口之SparkContext_第4张图片

然后我们进入createTaskScheduler这个方法里具体看实现:

Spark程序的入口之SparkContext_第5张图片

声明了一系列变量,这些变量都是一些正则,其实就是为了匹配以哪种方式,local?yarn-client,等等,本质是为了起taskScheduler的一个线程。

Spark程序的入口之SparkContext_第6张图片

Spark程序的入口之SparkContext_第7张图片

。。。。。。。。。。。。。。。。

就不一一截图了。


3.创建DAGScheduler

这里就不做细讲了,在DAGScheduler那章会专门讲这个。


Spark程序的入口之SparkContext_第8张图片

4.创建SparkUI

Spark程序的入口之SparkContext_第9张图片

     

       sparkUI默认端口4040,这样我们就可以通过浏览器访问,查看application的各种状态,这上面信息很丰富,我们在排错调优可以从上面获取很多信息。

       以上是对sparkContext的主体介绍,具体DAGScheduler,TaskScheduler都会有单独的章节进行讲解。



欢迎关注微信公众号:BigData共享

文章来自:

https://mp.weixin.qq.com/s?__biz=MzU2NzA3OTEwMg==&tempkey=OTUzX3oybnhCaW9TY3E5VW8rK2VTZkxBUUc1c2dzTUlDcW1fR1hLWk8yUnN3SXNxa1JLS25McnJTSkw4aXNxaHozVGJPdmcyWHY3eEhvX09hSy1zNWt0bzFBZVgtTXpyaS1ZYlExVTFDMFZBc3NUVFh5ckpYdGJiS3JzdUY3YVNaMVNpZFpyMmtER3lEaU10andiYUo3TmlzRHdQUHFubzRtbE1QNnJYZVF%2Bfg%3D%3D&chksm=7ca3f8984bd4718e34c266d0852b28f7bcd4d93f2ab6c7ffa20de426aa8dc1cfc56e1c44b7e9#rd



你可能感兴趣的:(Spark)