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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 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)的助力,

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


相关文章
|
2月前
|
Java 数据库 Android开发
【专栏】Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理
【4月更文挑战第27天】本文探讨了Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理。通过案例分析展示了网络请求、图像处理和数据库操作的优化实践。同时,文章指出并发编程的挑战,如性能评估、调试及兼容性问题,并强调了多线程优化对提升应用性能的重要性。开发者应持续学习和探索新的优化策略,以适应移动应用市场的竞争需求。
|
2月前
|
运维 Kubernetes 监控
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
443 0
|
4天前
|
分布式计算 运维 Serverless
EMR Serverless Spark PySpark流任务体验报告
阿里云EMR Serverless Spark是一款全托管的云原生大数据计算服务,旨在简化数据处理流程,降低运维成本。测评者通过EMR Serverless Spark提交PySpark流任务,体验了从环境准备、集群创建、网络连接到任务管理的全过程。通过这次测评,可以看出阿里云EMR Serverless Spark适合有一定技术基础的企业,尤其是需要高效处理大规模数据的场景,但新用户需要投入时间和精力学习和适应。
83 41
|
2天前
|
弹性计算 分布式计算 DataWorks
DataWorks产品使用合集之spark任务如何跨空间取表数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
8 1
|
8天前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之使用spark.sql执行rename分区操作,遇到任务报错退出的情况,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
13天前
|
分布式计算 运维 Serverless
通过Serverless Spark提交PySpark流任务的实践体验
EMR Serverless Spark服务是阿里云推出的一种全托管、一站式的数据计算平台,旨在简化大数据计算的工作流程,让用户更加专注于数据分析和价值提炼,而非基础设施的管理和运维。下面就跟我一起通过Serverless Spark提交PySpark流任务吧。
50 1
|
16天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之运行run-application --target kubernetes-application执行,通过进程的返回码来决定作业是否成功,任务返回码都是0,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3天前
|
Kubernetes 安全 测试技术
超大规模商用 K8s 场景下,阿里巴巴如何动态解决容器资源的按需分配问题?
超大规模商用 K8s 场景下,阿里巴巴如何动态解决容器资源的按需分配问题?
|
10天前
|
分布式计算 资源调度 Java
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
14 0
|
11天前
|
分布式计算 Shell 调度
看看airflow怎样调度python写的spark任务吧
看看airflow怎样调度python写的spark任务吧
14 0