Spark一些基础原理——资源调度

自学知识:RDD的生命周期,DAG任务调度

lv0

在Spark中,资源调度是Master负责管理的,Worker通过注册的形式在Master注册相关资源。而在执行过程中,是通过sc即Driver向Master申请计算资源(Master根据集群设置启动不同的Driver,对于Standalone而言Driver是在提交任务的本地环境,而对于Cluster而言是由Master分配到某一个Worker执行,Driver在Master注册后会向Master申请计算资源),Master分配计算任务资源Executor注册给Driver,并由Driver分配到各个Worker执行tasks,tasks会获取datablock创建RDD而后根据DAG分配Stage进行计算,最终汇总results得到结果。
而在Master分配Exector时,一般为先过滤Alive状态Exector放入HashMap中,根据指定的策略(均衡调用还是依次占用)对资源进行分配,分配时也是打乱分配的。Exector注册给Driver后,Driver向每个Tasks对应的Exector发送LaunchTask以执行Task任务。Exector默认的堆空间大小为512M,默认只允许使用90%的Safe空间,而在Safe空间中默认为20%用于shuffle,60%用于storage,而storage中20%用于序列化。一般情况下需要综合考虑storage和shuffle对内存的空间的消耗。
此外,Spark在数据源调用上,优先调用本地资源和依赖jar包。如若可以尽可能在本地构建数据缓存。读写数据可以基于磁盘、内存以及OffHeap(即堆外内存),通过BlockManager进行管理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值