首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spark实战(3)_SparkContext原理剖析与源码分析

TaskScheduler的初始化机制

TaskScheduler,如何注册Application,executor如何反向注册?

TaskScheduler的初始化机制

createTaskScheduler(),内部会创建三个东西。

一是TaskSchedulerImpl,它其实就是我们所说的TaskScheduler。

二是SparkDeploySchedulerBackend,它在底层会负责接收TaskSchedulerImpl的控制,实际上负责与Master的注册,Ececutor的反注册,task发送到executor等操作。

调用TaskSchedulerImpl的init()方法,创建SchedulerPool,当DAGScheduler要让TaskScheduler去调度一些任务的时候,就会把这些任务放到调度池里面,它有不同的优先策略,比如FIFO。

调用TaskSchedulerImpl的start()方法,方法内部调用SparkDeploySchedulerBackend的start()方法。

SparkDeploySchedulerBackend的start()方法,创建一个东西,AppClient。

AppClient,启动一个线程,创建一个ClientActor。

ClientActor线程,调用两个方法,registerWithMaster()——>tryRegisterAllMasters()。

registerWithMaster()——>tryRegisterAllMasters(),向MasterActor发送RegisterApplication(case class,里面封装了Application的信息)。

RegisterApplication发送数据到Spark集群的Master——>Worker——>Executor。

Executor反向注册到SparkDeploySchedulerBackend上面去。

TaskSchedulerImpl底层实际主要基于SparkDeploySchedulerBackend来工作。

DAGScheduler

DAGSchedulerEventProcessActor,DAGScheduler底层基于该组件进行通信。(线程)

SprkUI

SprkUI,显示Application运行的状态,启动一个jetty服务器,来提供web服务,从而显示网页。

源码分析

start()方法,

package org.apache.spark.deploy.client,AppClient.scala,

the Spark UI,

本文首发于steem,感谢阅读,转载请注明。

https://steemit.com/@padluo

微信公众号「padluo」,分享数据科学家的自我修养,既然遇见,不如一起成长。

数据分析

读者交流电报群

https://t.me/sspadluo

知识星球交流群

知识星球读者交流群

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180429G0CYAZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券