spark-shell的启动流程:
wordCount执行流程
- val lines = sc.textFile("...") -->HadoopRDD读取文件内容--->MapPartionsRDD[1]
- val words = lines.map(_.split(" ")) -->MapPartionsRDD[2]
- val ones = words.map((_,1))--->MapPartionsRDD[3]
- val counts = ones.reduceByKey(+) -->ShuffledRDD[4]
wordcount 产生4个RDD,会被划分成两个stage:ShuffleMapStage和ResultStage
这个job会有两个分区,所以这两个stage会分别产生两个task,每个task会被尝试执行多次直到执行完毕。