01-从WordCount程序理解Spark术语及术语间的关系

1. 应用程序(Application)

通过下面的代码设置应用程序名称,设置后再UI中可以看到相应的名称。

//1.设置Application的名称
val conf = new SparkConf()
conf.setAppName("WordCount")
conf.setMaster("local")

2. 作业(Job)

Job由scala的执行算子生成,每个执行的算子会调起runjob,从而生成一个job。

res.foreach(println)
value.foreach(println)

3. 阶段(Stage)

Stage表是任务执行的阶段,以聚合类算子为分界点划分stage,聚合类的算子需要经过shuffle的过程,也就是需要从其他的结点拉取数据,因此shuffle前的stage是的操作是可以在同一个节点完成。

val res = dataSets.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)

val value = res.map(x => {
      (x._2, 1)
    }).reduceByKey((ordVal: Int, newVal: Int) => {
      ordVal + newVal
})

4.Application,Job,Stage,Task的关系

一个Application可以生成多个Job,每个Job由执行算子生成。一个Job以shuffle类算子为分界点,将job划分成不同的阶段(Stage)。每个stage有多个task执行。

posted @ 2024-07-28 08:10  脆皮老弟  阅读(2)  评论(0编辑  收藏  举报