摘要:
结论 EventLoop是一个调度,其内部使用LinkedBlockingDeque类型的eventQueue对象,存储待处理的任务。 死循环调度线程 eventThread 不停的查询 eventQueue 中的新数据。 通过post方法, 提交任务到队列中。 EventLoop -> onRec 阅读全文
posted @ 2022-05-29 11:36
608088
阅读(76)
评论(0)
推荐(0)
摘要:
结论 DAGScheduler 在主线程提交任务到EventLoop阻塞队列中 DAGScheduler 在主线程等待异步任务的执行完成 EventLoop 回调 DAGScheduler的onReceive方法,进行Stage拆分 为什么不直接在主线程完成 猜想是因为采用 "生产消费" 设计,调度 阅读全文
posted @ 2022-05-29 11:27
608088
阅读(43)
评论(0)
推荐(0)
摘要:
结论 DAGScheduler → runJob def runJob[T, U]( val waiter = submitJob(rdd, func, partitions, callSite, resultHandler, properties) ... // 等待job执行结束 ThreadU 阅读全文
posted @ 2022-05-29 10:47
608088
阅读(53)
评论(0)
推荐(0)
摘要:
结论 action类型的算子,最终由 SparkContext.runJob 触发 DAGScheduler.runJob action算子最终触发sparkContext.runJob saveAsTextFile action算子触发 /* 底层调用 SparkHadoopWriter.writ 阅读全文
posted @ 2022-05-29 08:01
608088
阅读(53)
评论(0)
推荐(0)
浙公网安备 33010602011771号