Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

Cloudera 开源新项目:轻量级通用资源调度程序 YuniKorn

  • 2019-07-18
  • 本文字数:2282 字

    阅读完需:约 7 分钟

Cloudera 开源新项目:轻量级通用资源调度程序YuniKorn

2019 年 7 月 17 日,Cloudera 官方博客发文开源了一个幕后工作很久的大数据存储和通用计算平台交叉的新项目——YuniKorn。据介绍,YuniKorn 是一种轻量级的通用资源调度程序,适用于容器编排系统,负责为大数据工作负载分配/管理资源,包括批处理作业和常驻运行的服务。


以下为博客原文的译文


Hello World,已经有一段时间了!


今天我们非常兴奋地宣布开源我们在幕后工作了很久的大数据存储和通用计算平台交叉的一个令人兴奋的新项目 - YuniKorn!- 一个新的独立通用资源调度程序,负责为大数据工作负载分配/管理资源,包括批处理作业和常驻运行的服务。


让我们一起来深入了解一下!

介绍

YuniKorn 是一种轻量级的通用资源调度程序,适用于容器编排系统。它的创建是为了一方面在大规模,多租户环境中有效地实现各种工作负载的细粒度资源共享,另一方面可以动态地创建云原生环境。YuniKorn 为混合工作负载提供统一的跨平台调度体验,包括无状态批处理工作负载和状态服务,支持但不限于 YARN 和 Kubernetes。YuniKorn[‘ju:nikɔ:n]是一个虚构的词,“Y”代表 YARN,“K”代表 K8s,“Uni”代表统一,其发音与“Unicorn”相同。创建它是为了最初支持这两个系统,但最终目的是创建一个可以支持任何容器协调器系统的统一调度程序。


YuniKorn 目前有 4 个组件


  • yunikorn-scheduler-interface

  • yunikorn-core

  • yunikorn-k8shim

  • yunikorn-web


我们将在下面稍后深入讨论这些问题。

背景

企业用户在不同的平台上运行工作负载,例如 YARN 和 Kubernetes。他们需要使用不同的资源调度程序,以便规划其工作负载有效地在这些平台上运行。目前,调度程序生态系统是分散的,并且在平衡现有用例(如批处理工作负载)以及云本机体系结构,自动扩展等新需求方面的实现不是最理想的。例如:


  1. YARN 具有批量工作负载的 Capacity Scheduler 和 Fair Scheduler。

  2. K8s 具有服务的默认调度程序。对于批处理工作负载,社区有 Kube-batch,Poseidon,Rubix(Spark 的 Scheduler 扩展)。


我们调查了这些项目,并意识到到目前为止还没有一个完美的方案来支持无状态批处理作业(需要公平性,高调度吞吐量等)和长期运行服务(需要持久化存储,复杂的编排约束,等等。)。这促使我们必须创建一个统一的调度框架来满足所有这些重要需求,并使大数据和云原生社区受益。

架构

YuniKorn 的其中一个设计目标是将调度程序与下面的资源管理系统分离,为此,我们创建了一个定义通信协议的通用调度程序接口。通过利用它,scheduler-core 和 shim 一起工作来处理调度请求。关于 YuniKorn 组件的解释如下。



图:YuniKorn 架构

YuniKorn 的主要模块

YuniKorn -scheduler-interface:调度程序接口是资源管理平台(如 YARN / K8s)将通过诸如 GRPC /编程语言绑定之类的 API 与之交谈的抽象层。


YuniKorn Core:YuniKorn Core 封装了所有调度算法,它从资源管理平台(如 YARN / K8s)下面收集资源,并负责资源分配请求。它决定每个请求的最佳部署位置,然后将响应分配发送到资源管理平台。调度程序核心与下层平台无关,所有通信都通过调度程序接口。


Scheduler Shim Layers:调度程序 Shim 在主机系统内运行(如 YARN / K8s),它负责通过调度程序接口转换主机系统资源和资源请求,并将它们发送到调度程序核心。在做出调度程序决策时,它负责实际的 pod /容器绑定。


Scheduler UI:调度程序 UI 为已托管的节点,计算资源,应用程序和队列提供简单视图。

YuniKorn 的一些特性

以下是 YuniKorn 目前支持的调度功能列表:


  • 调度功能支持批处理作业和长期运行/有状态服务

  • 具有最小/最大资源配额的分层池/队列

  • 队列,用户和应用程序之间的资源公平性

  • 基于公平性的跨队列抢占

  • 自定义资源类型(如 GPU)调度支持

  • 丰富的编排约束支持

  • 根据策略自动将传入的容器请求映射到队列

  • 对节点使用专用配额/ ACL 管理将大的集群拆分成若干子群集


同时, YuniKorn 作为调度程序对 K8S 的一些支持如下:


  • 支持 K8s 谓词。如 pod 亲和/反亲和,节点选择器

  • 支持持久化存储,配额申请等

  • 从 configmap 动态加载调度程序配置(热刷新)

  • 可以在 Kubernetes 之上部署

  • YuniKorn Web 支持监

  • 视调度程序队列,资源使用,应用程序等

用于监控 YuniKorn 队列资源使用情况的 Web UI


YuniKorn Web UI

用于监控 YuniKorn 应用程序管理和资源使用情况的 Web UI


YuniKorn 用于监控的 Web UI

下一步工作 ?

在单一系统上运行混合负载存在许多的挑战,YuniKorn 是我们打算让这条路径更容易的选择。我们的目标是开始支持各种大数据工作负载运行在 K8S 集群之上。同时,我们正在努力更好地支持 K8S 上的 Spark,Flink 和 Tensorflow 等工作负载。我们的最终目标是为大数据和云原生世界带来最佳的调度体验。


作者介绍:


Weiwei Yang,Cloudera 的软件工程师,Apache Hadoop 提交者和 PMC 成员,专注于分布式系统上的资源调度。


Wangda Tan,Cloudera 的 K8S/Yarn 团队资深软件工程师经理,Apache Hadoop PMC 成员和提交者。自 2011 年以来的 Apache Hadoop。资源管理,调度系统,计算平台的深度学习。


Sunil Govindan,Cloudera 软件工程经理。自 2013 年以来的 Apache Hadoop 项目,贡献者,提交者和 PMC 成员。Hadoop YARN 调度。


Wilfred Spiegelenburg,Cloudera 软件工程师。6 年的 Apache Hadoop 开发经验,主要在 YARN,MapReduce 和 Spark。


Vinod Kumar Vavilapalli,Hortonworks / Cloudera 的工程总监。Apache Hadoop PMC 主席。ASF 会员。Apache Hadoop 创始团队成员之一。主要精力在大数据,大规模调度,容器化支持,扩展性及开源社区。


原文链接:


https://blog.cloudera.com/blog/2019/07/yunikorn-a-universal-resource-scheduler/


2019-07-18 11:5110163

评论 1 条评论

发布
用户头像
新的开源工具,贴个GitHub地址,可以一试哈。
https://github.com/cloudera/yunikorn-core
2019-07-18 13:38
回复
没有更多了
发现更多内容

基于YOLOv8的太阳能电池片缺陷检测项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

yolov8

烟草行业监管新利器:中烟创新案卷评审评查系统提速监管效能

中烟创新

万界星空科技锂电池MES解决方案

万界星空科技

mes 锂电池 新能源电池 制造业转型 锂电池mes

前维护与后维护LED屏的差异

Dylan

维护 LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏

鸿蒙NEXT开发案例:世界时间表

最新动态

腾讯云GooseFS团队与厦门大学合作成果 AC-Cache入选 PPOPP

极客天地

Couchbase 可观测性最佳实践

观测云

couchbase

Golang基础笔记十三之context

Hunter熊

Go 后端 Context 超时控制 传递数据

回顾Meltdown与Spectre漏洞披露事件:风险与启示

qife122

漏洞披露 侧信道攻击

2015年漏洞实验室课程公告 - CanSecWest与SyScan技术研讨会

qife122

漏洞利用 内核漏洞 内核漏洞模糊测试

区块链预付卡App的技术方案

北京木奇移动技术有限公司

区块链开发 软件外包公司 区块链支付

性能提升 10 倍,零改造实现 DIFY 模式迁移至 Spring AI Alibaba 模式

阿里巴巴云原生

阿里云 云原生 Spring AI Alibaba

中昊芯英登上中央电视台《新闻联播》头条

科技热闻

鸿蒙 开发黑科技:前端页面轻松调用 ArkTS 函数

最新动态

WebGL开发数字孪生框架

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

javax.security.auth.login.LoginException: Message stream modified (41)

刘大猫

人工智能 数据挖掘 算法 数据分析 LoginException

面试官:Dify如何调用外部程序?

王磊

中烟创新灯塔大模型应用开发平台入选工信部“政务大模型应用典型案例”

中烟创新

鸿蒙NEXT实战:打造全能文件管理器应用

最新动态

告别工具混战!TitanIDE,AI 开发者的全流程研发加速器

行云创新

模型开发训练 Cloud IDE TitanIDE 云端 IDE

鸿蒙开发中与 AI 编码助手的共处之道(ArkTS 视角)

谢道韫

踩过坑后,我发现了这几个运维神器

外滩运维专家

网站监控 免费SSL证书 监控电话 短信接口 免费监控

在AI时代,挖掘用户真实需求比技术实现更具挑战性

qife122

开源项目 需求分析

音乐 NFT 软件系统的上线

北京木奇移动技术有限公司

数字藏品 软件外包公司 音乐NFT

中昊芯英荣登人社部评选“最具成长潜力的留学人员创业企业”

科技热闻

鸿蒙NEXT实战:构建社交应用新生态

最新动态

Playwright自动化测试系列课(3) | 第二阶段:核心技能与调试 ​​交互操作大全

测吧(北京)科技有限公司

统一多模态 Transformer 架构在跨模态表示学习中的应用与优化

申公豹

人工智能

云文档系统(源码+文档+讲解+演示)

深圳亥时科技

面向多模态感知与反思的智能体架构Agentic AI的实践路径与挑战

申公豹

Agentic

腾讯云AIoT 2.0产品解决方案全面升级,一站式智能终端开发新范式

极客天地

Cloudera 开源新项目:轻量级通用资源调度程序YuniKorn_云原生_Weiwei Yang 等_InfoQ精选文章