Driver Program, Job和Stage是Spark中的几个基本概念。Spark官方文档中对于这几个概念的解释比较简单,对于初学者很难正确理解他们的涵义。
官方解释如下(http://spark.apache.org/docs/latest/cluster-overview.html):
Driver Program: 运行应用程序的main()函数并创建SparkContext的过程.
Job:由多个任务组成的并行计算,这些任务在Spark操作(例如保存、收集)下生成;您将在驱动程序日志中看到这个术语。.
Stage: 每个作业被划分为更小的任务集,称为相互依赖的阶段(类似于MapReduce中的map和reduce阶段);您将在驱动程序日志中看到这个术语。
看起来很抽象对不对?反正我看完后对于这几个概念还是一头雾水。于是Yahoo了一下,在stackoverflow上看到一篇帖子问了类似的问题。下面有好心人举了一个简单易懂的例子,解释了这几个概念的区别。
链接如下:
http://stackoverflow.com/questions/28973112/what-is-spark-job
我简单整理了一下,方便大家参考。
例子: