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)的助力,

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


相关文章
|
27天前
|
存储 缓存 分布式计算
Spark任务OOM问题如何解决?
大家好,我是V哥。在实际业务中,Spark任务常因数据量过大、资源分配不合理或代码瓶颈导致OOM(Out of Memory)。本文详细分析了各种业务场景下的OOM原因,并提供了优化方案,包括调整Executor内存和CPU资源、优化内存管理策略、数据切分及减少宽依赖等。通过综合运用这些方法,可有效解决Spark任务中的OOM问题。关注威哥爱编程,让编码更顺畅!
158 3
|
3月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何开发ODPS Spark任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
消息中间件 Kubernetes Kafka
微服务从代码到k8s部署应有尽有系列(八、各种队列)
微服务从代码到k8s部署应有尽有系列(八、各种队列)
|
2月前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
37 5
|
2月前
|
SQL 机器学习/深度学习 分布式计算
Spark适合处理哪些任务?
【9月更文挑战第1天】Spark适合处理哪些任务?
132 3
|
5月前
|
分布式计算 运维 Serverless
EMR Serverless Spark PySpark流任务体验报告
阿里云EMR Serverless Spark是一款全托管的云原生大数据计算服务,旨在简化数据处理流程,降低运维成本。测评者通过EMR Serverless Spark提交PySpark流任务,体验了从环境准备、集群创建、网络连接到任务管理的全过程。通过这次测评,可以看出阿里云EMR Serverless Spark适合有一定技术基础的企业,尤其是需要高效处理大规模数据的场景,但新用户需要投入时间和精力学习和适应。
7179 43
EMR Serverless Spark PySpark流任务体验报告
|
3月前
|
存储 分布式计算 供应链
Spark在供应链核算中应用问题之通过Spark UI进行任务优化如何解决
Spark在供应链核算中应用问题之通过Spark UI进行任务优化如何解决
|
4月前
|
分布式计算 Java Serverless
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
本文以 ECS 连接 EMR Serverless Spark 为例,介绍如何通过 EMR Serverless spark-submit 命令行工具进行 Spark 任务开发。
387 7
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
|
4月前
|
分布式计算 运维 Serverless
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
在大数据快速发展的时代,流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台,它不仅简化了实时数据处理流程,还免去了服务器管理的烦恼,提升了效率。本文将指导您使用EMR Serverless Spark提交PySpark流式任务,展示其在流处理方面的易用性和可运维性。
262 7
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
|
3月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
192 0

推荐镜像

更多