TaskScheduler实例对象启动源代码如下所示:
从上面代码可以看出来,taskScheduler的启动是在SparkContext
找到TaskSchedulerImpl实现类中的start方法实现:
1、从上代码看到,先启动CoarseGrainedSchedulerBackend,
从上面CoarseGrainedSchedulerBackend类的代码,可以看出spark启动了DriverActor,名称为CoarseGrainedScheduler,这是一个akka消息通信类,会先运行preStart()方法
从上面代码可以看到,初始化了akka客户端监听,还有最重要的是调用了系统的scheduler调度,参数函数是立即执行调度,间隔1000毫秒,运行ReviveOffers方法
进入makeOffers()方法:
运行launchTask方法:
这段代码是spark序列号任务大小超过akkaFrameSize - AkkaUtils.reservedSizeBytes大小,那就报错为”Serialized task %s:%d was %d bytes, which exceeds max allowed: " +
"spark.akka.frameSize (%d bytes) - reserved (%d bytes). Consider increasing " +
"spark.akka.frameSize or using broadcast variables for large values.“ ,此刻会将该任务终止,并将任务从任务列表中移除,这样推荐使用broadcast广播方式
否则,将获取执行任务数据,并减少空闲cpu数,发送消息执行 LaunchTask(new SerializableBuffer(serializedTask))方法,即CoarsedGrainedExecutorBackend类的LaunchTask方法:
上面代码 会运行executor 的launchTask方法:
TaskRunner就是一个多线程:
代码太多,我就不截图了,其实实际就是根据机器状况,运行task任务
2、然后我们回到TaskSchedulerImpl实现类中的start方法
如果isLocal=false and spark.speculation=true,不是local模式,那就要dispatcher分发任务了,默认是100毫秒后立即启动,并间隔100毫秒循环运行,
CoarseGrainedSchedulerBackend的reviveOffers:
相关推荐
Spark安装包:spark-3.1.3-bin-without-hadoop.tgz
Apache Spark版本3.1.3。Linux安装包。spark-3.1.3-bin-hadoop3.2.tgz
本资源是spark-2.0.0-bin-hadoop2.6.tgz百度网盘资源下载,本资源是spark-2.0.0-bin-hadoop2.6.tgz百度网盘资源下载
spark-3.0.0-bin-hadoop3.2下载安装包
Spark Doris Connector(apache-doris-spark-connector-2.3_2.11-1.0.1-incubating-src.tar.gz) Spark Doris Connector Version:1.0.1 Spark Version:2.x Scala Version:2.11 Apache Doris是一个现代MPP分析...
spark-3.2.0-bin-hadoop3.2.tgz
pyspark本地的环境配置包,spark-2.3.4-bin-hadoop2.7.tgz:spark-2.3.4-bin-hadoop2.7.tgz
spark-hive_2.11-2.3.0 spark-hive-thriftserver_2.11-2.3.0.jar log4j-2.15.0.jar slf4j-api-1.7.7.jar slf4j-log4j12-1.7.25.jar curator-client-2.4.0.jar curator-framework-2.4.0.jar curator-recipes-2.4.0....
spark-assembly-1.5.2-hadoop2.6.0 在spark编程中使用的一个jar
spark-streaming-kafka-0-8_2.11-2.4.0.jar
linux的spark新版本,匹配hadoop2.7版本,spark-3.2.1-bin-hadoop2.7.tgz
spark-hive-thriftserver_2.11-2.1.spark-hive-thrift
spark-2.4.8-bin-hadoop2.7.tgz
spark-streaming-flume_2.11-2.1.0.jar
spark-2.4.0-bin-hadoop2.7
spark-3.0.0-bin-hadoop2.7.tgz 官网下载不了的,需要资源的,可以到这里下载哦
spark-3.2.4-bin-hadoop3.2-scala2.13 安装包
spark-1.6.3-bin-hadoop2.6.tgz
spark-2.2.0-yarn-shuffle.jar
spark-2.3.1-bin-hadoop2.7.zip