gpt4 book ai didi

apache-spark - 使用自定义插件和调度框架在 Kubernetes 上优化 Apache Spark

转载 作者:行者123 更新时间:2023-12-02 12:00:35 25 4
gpt4 key购买 nike

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

最佳答案

听起来您想要的是 Gang Scheduling 📆。如果你想拥有这种能力,我建议你使用 Volcano使用 Gang Scheduling 安排/运行 🏃 您在 Kubernetes 中的作业.
另一种方法是使用 scheduler extender 创建您自己的调度程序。如所述 here或使用 Palantir gang scheduler extender .
✌️

关于apache-spark - 使用自定义插件和调度框架在 Kubernetes 上优化 Apache Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62987824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com