Spark作业资源调度源码解析.docx
《Spark作业资源调度源码解析.docx》由会员分享,可在线阅读,更多相关《Spark作业资源调度源码解析.docx(8页珍藏版)》请在第一文库网上搜索。
1、Spark作业资源调度源码解析Spark作业调度分为资源调度和任务调度两个部分,作业提交之后首先由资源调度系统为作业分配所需的计算资源,并创建driver和所有的executor实例;然后由任务调度系统通过解析作业的计算逻辑进一步划分stage、创建任务集并根据一定的调度规则将任务集分发到合适的executor执行器上去运行。本文主要介绍Spark资源调度的相关原理。Spark资源调度方式Spark的资源调度主要有如下几种方式:1. SparkStanda1one:Standa1one是Spark的原生调度方式,适用于小型或者测试集群。当我们提交SPark作业时使用-masterspark:/
2、IP:PORT参数时,SPark将使用StandaIone模式对作业进行资源调度;采用本模式调度需要用户自行搭建SPark集群,参与资源调度的角色主要为Master和Worker,Master用于作业调度和计算资源的分配,Worker则用于启动driver和executor实例。2. SparkonYarn:当提交作业时使用一masteryarn参数时,SPark作业将会被调度至Yarn集群上去运行,基于Yaci的调度可适用于大型高并发的企业集群;Yarn作为HadooP项目一部分,是业内应用非常广泛的资源调度器,可以支持包括SPark、MaPRedUCe和f1ink等多种计算引擎的调度;可以
3、采用FIF0、Fair、CaPaCity多种调度模式,并进一步定制资源分配和调度策略,为用户提供了灵活的调度框架;同时还支持多租户资源隔离和资源争抢,可以达到资源隔离和集群资源使用率的平衡。Yarn通过AppIicationMaster来负责作业的资源申请以及任务的调度,而ResourceManager则负责集群资源的统一管理和分配。3. SparkonKubernetes:提交作业时使用一masterk8s:/apiserver:port参数则可以将应用调度到K8S集群运行;Spark从2.4开始支持使用kubernetes进行资源调度,Sparkonkubernetes可以方便地实现存算分
4、离和计算资源的弹性伸缩,极大方便了业务的快速拓展,同时还可以提高硬件资源的利用率并节约成本;Kubernetes的调度器kube-schedu1er根据指定的调度算法在合适的node节点上启动driverpod和executorpodo由于Standa1one的是Spark的原生调度方式,并且实现方式较为简单,而Yarn和Kubernetes是独立于spark项目之外的资源调度系统,因此本文将以Standa1one模式为主线来解析Spark的资源调度原理,并以少量的Yarn和Kubernetes调度源码辅助说明。作业资源调度流程Spark作业通过SPark-SUbmit或者rest方式提交作业
5、,然后由资源调度系统对作业进行调度,主要的流程如下:1 .SparkCIient提交作业,并向调度系统申请启动driver实例;2 .调度系统根据调度策略和driver的资源需求等信息选择在特定的节点上启动driver;3 .DriVer负责invoke用户的主类mainc1ass,在mainc1ass中初始化了SParkCOnteXt对象,SParkCOnteXt不仅是应用编程接口,同时也包含了整个作业运行时的诸多重要对象,包括作业运行时环境对象SParkEnV、作业调度器DAGSchedu1er任务调度器TaskSchedu1er以及负责与executor通信的RPC组件Schedu1er
6、Backend等;4 .C1ient端向调度系统注册该作业;5 .调度系统根据已注册作业的资源需求信息,以及集群当前的资源使用情况将各个作业的executors调度到计算节点上去,executor启动后会初始化一个线程池等待执行driver分发的任务;6 .已经启动的executor向driver注册。Driver的创建和启动Stand1one模式下启动Driver:在StandaIone模式下,通过CIientAPP中CIientEndPOint对象向MaSter发起RequestSubniitDriver请求,Master接受到RequestSubmitDriver请求之后创建Driver
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spark 作业 资源 调度 源码 解析