spark认知理解(二)任务执行流程

spark运行模式主要有三种:spark standalone(自带)、YARN-Client模式和YARN-Cluster模式。各种运行模式虽然在启动方式、运行位置、调度策略上各有不同,但目标和整体运行逻辑都是一致的。

下面以spark standalone模式为例,以个人的理解,阐述下spark任务的执行流程。

spark-standalone采用zookeeper集群保证master的高可用性,master采用主备模式。

spark任务执行流程:

  • 用户 提交Application到master节点,向master注册并申请执行该任务的资源;
  • master分配work资源,并启动standaloneExecutorBackend;
  • standaloneExecutorBackend向sparkContext注册;
  • sparkContext将代码发送给standaloneExecutorBackend,解析形成DAG图,DAGscheduler将DAG分解为stage,每个stage就形成一个taskset,里面包含许多task,Taskscheduler负责将task分配到相应的work节点上;
  • standaloneExecutorBackend建立线程池(executor),将不同的task分配到指定的executor上,并向sparkContext进行报告,并将中间结果存到内存或硬盘;
  • work节点始终与master保持心跳,监控并汇报该节点上exector的状态;
  • 等到所有的task完成后,sparkContext向master进行注销,并释放资源。

spark认知理解(二)任务执行流程_第1张图片

                                                                图1 spark-standalone模式任务执行流程图


只有勤勉书写,才能拂去浮躁的心情。

–zlg358 2019/7/2 22:58


 

你可能感兴趣的:(spark,spark,机器学习,大数据,分布式计算)