spark on yarn 中的延迟调度(delay scheduler)

延迟调度算法思想十分简单,为了实现data locality(即该task所需数据就在其运行的机器上),会尽量将task分布到有其所需数据的机器或者jvm中去,如果机器或者jvm已被占用就进行延迟等待,直到该机器或者jvm可以运行该task或者超过等待时限则将task运行到其他机器上。

这个想法基于以下几点:

1.往往数据比程序要大得多,分布式上处理的数据都是GB为单位的,将程序放到数据所在机器去执行,大大减少网络传输时间。

2.在集群上面task一般都是运行时间较短的,即整个集群上面不断有task完成,释放其占用的资源,延迟调度的task能够有极大的机会获得分配。

总之,就是延迟调度节省的网络传输时间远远大于task等待花费的时间。


延迟调度的思想是相通的,本文讨论的是spark在yarn集群上的延迟调度情况,故分为两层,第一层是yarn的延迟调度,第二层则是spark内部的延迟调度。

1.yarn级别的Delay Scheduler

spark在yarn上面的Delay Scheduler其实就是觉得spark的executor分配在哪些NodeManager上面,这是由yarn根据application的输入文件而定。尽量将executor分布到有数据的NodeManager上。因为,在这一层上如果executor无法做到data locality,那么到了spark的级别分配task到executor的时候,更加无法实现data locality。

在yarn中配置yarn.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值