一道简单的命令下去 … … 10秒过去了, … … 20秒过去了, … … 哇,报错了。。。
相信这种场景在我们用 Mapreduce 处理数据的时候相当常见吧,不得不说,Mapreduce 的处理速度有时候真的让我们不敢恭维,那么我们今天就来学习一下号称比它快了 N 倍的Spark。
先来看一下Spark的整体任务流程图
第一步:调用RDD上的方法构建DAG
第二步:DAGSchedule将Stage切分,并将生成的Task以TakeSet的形式传给TaskScheduler
第三步:TaskSchedule调度Task(根据资源情况调度到相应的Executor中)
第四步:Executor接收Task,并将Task丢入到线程池中执行
以上便是Spark任务的整体流程了,如果发现有什么错误或者什么不同的见解,欢迎在评论区给我留言!