8.4.2 ResultTask执行结果与Driver的交互原理及源码详解
Task的run方法调用的时候会导致Task的抽象方法runTask的调用, Task.scala的runTask方法是一个抽象方法。Task包括2种Task:ResultTask、ShuffleMapTask,抽象runTask方法具体的实现由子类的runTask实现。ResultTask的runTask具体实现源码如下。
ResultTask.scala的runTask源码:
1. override def runTask(context: TaskContext): U= {
2. ……
3. //反序列RDD和func处理函数
4. val(rdd, func) = ser.deserialize[(RDD[T], (TaskContext, Iterator[T]) => U)](
5. ……
6. func(context, rdd.iterator(partition,context))
7. }
而ResultTask的runTask方法中反序列化生成func函数,最后通过func函数计算出最终的结果。
ResultTask执行结果与Driver的交互过程同ShuffleMapTask类似,最终DAGScheduler.handleTaskCompletion中task执行结果,根据ShuffleMapTask和ResultTask两种情况分别处理。其中ResultTask的处理结果如下。
DAGScheduler的handleTaskCompletion源码:
1. casert: ResultTask[_, _] =>
- 计算机视觉系列 -MMDetection 之MobileNetV2YOLOV3 经典算法(一)
- Rasa 3.x 学习系列- Rasa - Issues 4635:Make Rasa X model pull interval configurable in local mode
- Rasa 3.x 学习系列- Rasa - Issues 4759:Training Luis data with luis_schema_version higher than 4.x.x will
- Rasa 3.x 学习系列- Rasa - Issues 4799 rasa interactive does not work without nlu data
- Rasa 3.x 学习系列- Rasa - Issues 4917 Support S3 namespaces when retrieving models from buckets
- Rasa 3.x 学习系列- Rasa - Issues 4925 “rasa init” will ask if user wants to train a model
- Rasa 3.x 学习系列- Rasa - Issues 4985 Fix errors during training in ResponseSelector学习笔记
- Rasa 3.x 学习系列- Rasa - Issues 4933 Improved error message that appears when an incorrect paramete学习笔记
- Rasa 3.x 学习系列- Rasa - Issues 4792 socket debug logs clog up debug feed学习笔记
- Rasa 3.x 学习系列- Rasa - Issues 4873 dispatcher.utter_message 学习笔记