spark on k8s的动态资源分配和external shuffle Service以及任务的队列资源管理

简介: spark on k8s的动态资源分配和external shuffle Service以及任务的队列资源管理

我们知道目前在spark on k8s的官网中,这里有两项很明显的future work。


动态资源分配和外部的shuffle serivce

任务队列以及资源管理

也就是说,目前这两项spark还是不支持的,借助于广大社区的力量,各个大厂都提出了自己的开源方案


外部的shuffle service通过RSS(remote shuffle service)来解决

关于RSS可以参考spark remote shuffle service(RSS)杂谈, 简短的解释一下:在yarn中 动态资源分配是需要通过外部的shuffle service来实现的(目前也可以不基于外部的shuffle service。具体参考SPAKR-27963),而在hadoop的时代,是可以通过在yarn上开启shuffle service的,也就是说在每个节点上开启shuffle service,spark的shuffle RDD的中间结果就会保存在yarn的nodeManager上,这样每个executor空闲了以后就不需要等待job运行完了才释放executor,这样就会释放yarn的资源,因为shuffle RDD的中间结果是保存在了nodeManager上,下一个spark task需要的时候就可以从nodeManager上拉取,但是这对于kubernetes是不适合的,因为spark的executor是运行在pod上的,pod的如果摧毁了,中间结果也就不存在了。所以就引入了RSS,把中间结果存储专门的集中的shuffle service上来解决这个问题,(当然如果不开启动态资源分配,shuffle的中间结果,也会存在pod上,但是存储的路径是/var/lib,这是个系统盘,最好是进行磁盘的挂载)


对于任务队列以及资源管理

我们知道spark on yarn的时候我们的任务是跑在yarn上的,那队列的分配肯定是由yarn这个资源管理框架来做啊,所以kuberentes社区也提出了YuniKorn调度器,这个调度器的功能其实就是为了满足批任务和服务部署的需求,具体的可以参考spark on k8s:apache YuniKorn(Incubating)的助力,

其实这个任务调度器的提供了不仅仅任务队列和资源管理的作用,当然该调度器还是处于孵化阶段,好多功能有待提高和完善。


相关文章
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
分布式计算 Java 数据库连接
回答粉丝疑问:Spark为什么调优需要降低过多小任务,降低单条记录的资源开销?
回答粉丝疑问:Spark为什么调优需要降低过多小任务,降低单条记录的资源开销?
192 1
|
边缘计算 人工智能 Kubernetes
边缘计算问题之理解 Kubernetes 节点资源的四层分配结构如何解决
边缘计算问题之理解 Kubernetes 节点资源的四层分配结构如何解决
228 1
|
存储 Kubernetes 监控
在K8S中,Resource Quotas是什么?如何做资源管理的?
在K8S中,Resource Quotas是什么?如何做资源管理的?
|
分布式计算 Kubernetes Spark
大数据之spark on k8s
大数据之spark on k8s
986 2
|
机器学习/深度学习 分布式计算 监控
如何解决Spark在深度学习中的资源消耗问题?
【5月更文挑战第2天】如何解决Spark在深度学习中的资源消耗问题?
355 5
|
分布式计算 Kubernetes 监控
容器服务Kubernetes版产品使用合集之怎么实现把 spark 跑在k8s
容器服务Kubernetes版,作为阿里云提供的核心服务之一,旨在帮助企业及开发者高效管理和运行Kubernetes集群,实现应用的容器化与微服务化。以下是关于使用这些服务的一些建议和合集,涵盖基本操作、最佳实践、以及一些高级功能的使用方法。
250 1
|
Kubernetes 固态存储 调度
Kubernetes节点亲和性分配Pod
Kubernetes节点亲和性分配Pod
273 0
Kubernetes节点亲和性分配Pod
|
Kubernetes 安全 测试技术
超大规模商用 K8s 场景下,阿里巴巴如何动态解决容器资源的按需分配问题?
超大规模商用 K8s 场景下,阿里巴巴如何动态解决容器资源的按需分配问题?
|
分布式计算 Kubernetes Java
spark on k8s native
spark on k8s native