Spark on Yarn WordCount的执行流程
- 本篇内容
-
- 脚本提交篇
- SparkSubmit 类的main函数
- Spark WordCount的用户代码
- WordCount程序的执行流程
-
- 创建SparkConf
- 创建SparkContext
-
- SparkContext类图 
- SparkContext的SchedulerBackend和TaskScheduler的创建过程
- ExternalClusterManager体系
- SchedulerBackend类继承体系
- TaskScheduler类继承体系
- SparkContext中的TaskScheduler(YarnScheduler)的启动过程
- YarnScheduler启动后,Yarn设备在集群其他机器上大致是怎么处理的
- Spark任务的产生、分发与执行
- Tips
本篇内容
讲述的是Spark2.3.2 on Yarn版本的WordCount的大致执行流程
脚本提交篇

SparkSubmit 类的main函数
脚本提交完成后,Spark会调用SparkSubmit类的main函数执行正式的任务提交

Spark WordCount的用户代码
package spark.wordcount
import org.apache.spark.{SparkConf, SparkContext}
object SparkWordCount {
def main(args: Array[String]):Unit = {
val conf = new SparkConf().setAppName("Spark Word Count")
val sc = new SparkContext(conf)
val startTime:Long = sc.startTime
println(startTime)
val words = sc.textFile("hdfs://bigdatamaster:9000/data/test/")
val result = words.flatMap(line => line.split("\\s|,"))
.map(word => (word, 1))
.reduceByKey(_ + _)
result.collect().foreach(word => println(word))
}
}
WordCount程序的执行流程
创建SparkConf

创建SparkContext

SparkContext类图 
SparkContext的SchedulerBackend和TaskScheduler的创建过程

ExternalClusterManager体系

SchedulerBackend类继承体系

TaskScheduler类继承体系

SparkContext中的TaskScheduler(YarnScheduler)的启动过程


4069

被折叠的 条评论
为什么被折叠?



