Executor模块
了解DAGScheduler,TaskScheduler,SchedulerBackend模块的实现机制后
https://blog.youkuaiyun.com/handoking/article/details/81122877
按照spark的运行逻辑,应该了解一下executor工作节点中运算单元的机制。简单说就是以下几个过程:
1.appclient的创建
Appclient是用户应用Application与Master的交互借口,Master是指资源管理器。Appclient可以完成很多操作,比如注册应用,删除应用,增加executor,更新executor的状态等。Appclient是由SchedulerBackend创建的,Appclient向Master进行Application的注册,然后Master根据Application中的信息为它分配Worker。
2.Application注册过程
Appclient向Master发起注册请求,超过20秒没有收到注册成功就会重新发送注册请求,超过三次那么这个注册就失败了,但正常情况下,只要Master是健康的,注册就会成功的。Master收到注册申请后,将application的信息持久化存储在Master的数据结构中。
3.分配worker
Master根据提交的application的信息,来为application分配资源worker。分配有两种策略,一是尽量打散,就是将application分配到尽量多的节点上,这个适合大的应用,占用内存大,这样分散能提高效率。另一种是尽量集中,就是把application集中分配到一些节点上,这种适合CPU密集且内存占用较小的应用。根据这两种策略选择好worker以及CPU的数目后,Master会调用launchExecutor向worker发送请求,来增加executor,减少CPU和memory数目等操作。
4.创建Executor
worker收到了

本文详细介绍了Spark的Executor模块,包括Appclient的创建、Application注册、Worker分配、Executor创建及Task执行过程。此外,还深入解析了RDD机制,阐述了RDD的定义、创建方式、转换概念、缓存原理及计算过程,揭示了Spark高效执行的背后逻辑。
最低0.47元/天 解锁文章
745

被折叠的 条评论
为什么被折叠?



