使用定制插件和调度框架优化kubernetes上的apachespark

tyg4sfes  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(314)

我的目标是在集群中的无状态工作负载旁边以最佳方式运行spark应用程序,以充分利用集群资源。
由于spark应用程序可能会受到部分调度的影响(首先启动驱动程序pod,然后请求执行程序pod时,驱动程序会阻塞执行程序),防止这种情况的一个简单策略是实施人们常说的帮派/联合调度,以确保我们只启动驱动程序pod,前提是我们可以通过实施某种保留设计来保证将来可以启动所有执行器,以便驱动程序可以为将要启动的执行器保留资源未来。
另外,这个保留定义/实现也必须对所有其他非spark pod可见,因为它们还必须像spark pod一样记录它们的资源请求,这样我们就可以清楚地了解集群资源的利用情况。
当前的实现包括运行一个新的定制调度器或者实现一个调度器扩展程序来实现这一点,但是我想知道我们是否可以通过编写定制的调度器插件来实现这一点。另外,在多租户环境(具有不同类型的工作负载)中,插件必须利用调度框架中的哪些扩展点来优化spark作业的调度,以便我的默认配置文件可以继续调度无状态工作负载,而使用这些插件的自定义配置文件可以调度spark作业应用?
最后,这是在多租户环境中优化调度和无状态工作负载的最佳方法吗?由于我们只有一个所有概要文件都必须共享的队列,这种方法(使用自定义插件)的缺点是什么?

zpgglvta

zpgglvta1#

听起来你想要的是帮派安排?。如果你想拥有这个功能,我建议你使用火山计划/运行?你在kubernetes的工作和帮派安排。
另一种方法是使用这里描述的调度器扩展程序创建自己的调度器,或者使用palantir gang调度器扩展程序。
✌️

相关问题