如何解析Spark集群和任务执行过程

本篇文章给大家分享的是有关如何解析Spark集群和任务执行过程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Spark集群组件

如何解析Spark集群和任务执行过程
 

Spark是典型的Master/Slave架构,集群主要包括以下4个组件:
Driver:Spark框架中的驱动器,运行用户编写Application 的main()函数。类比于MapReduce的MRAppmaster
Master:主节点,控制整个集群,监控worker。在Yarn模式中为全局资源管理器
Worker:从节点,负责控制计算节点,启动Executor。类比Yarn中的节点资源管理器
Executor:运算任务执行器,运行在worker节点上的一个进程。类似于MapReduce中的MapTask和ReduceTask

Spark基本执行流程

以StandAlone运行模式为例:

如何解析Spark集群和任务执行过程


 1.客户端启动应用程序及Driver相关工作,向Master提交任务申请资源

2.Master给Worker分配资源,通知worker启动executor

3.Worker启动Executor,Worker创建ExecutorRunner线程,ExecutorRunner会启动ExecutorBackend进程,Executor和Driver进行通信(任务分发监听等)

4.ExecutorBackend启动后向Driver的SchedulerBackend注册,SchedulerBackend将任务提交到Executor上运行
5.所有Stage都完成后作业结束

笔者强调:

  1. Driver端进行的操作

    1. SparkContext构建DAG图

    2. DAGScheduler将任务划分为stage、为需要处理的分区生成TaskSet

    3. TaskScheduler进行task下发

    4. SchedulerBackend将任务提交到Executor上运行
  2. 资源划分的一般规则

    1. 获取所有worker上的资源

    2. 按照资源大小进行排序

    3. 按照排序后的顺序拿取资源

      1. 轮询

      2. 优先拿资源多的
  3. Spark不同运行模式任务调度器是不同的,如Yarn模式:yarn-cluster模式为YarnClusterScheduler,yarn-client模式为YarnClientClusterScheduler

以上就是如何解析Spark集群和任务执行过程,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/223292.html

(0)
上一篇 2022年1月6日
下一篇 2022年1月6日

相关推荐

发表回复

登录后才能评论