QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:519862

评论 1 条评论

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

又添三位“信伙伴”,亚信安慧AntDB数据库与南京一鸣、广东鸿数、北京数见完成兼容互认

亚信AntDB数据库

数据库 AntDB AntDB数据库

“粤”见昇腾AI,昇腾AI开发者创享日·广州站即将开启

彭飞

现在好用的零代码开发平台或者低代码开发平台有哪些?

代码生成器研究

Logii 指纹浏览器中如何设置代理

Geek_bf375d

爬虫 IP 代理IP 代理IP设置 #HTTP

除了Trello软件,这4款项目管理看板也值得推荐!

彭宏豪95

项目管理 科技 在线白板 效率软件 看板工具

程序员世界破破烂烂,低代码总在缝缝补补

伤感汤姆布利柏

Java Vue 前端 低代码

AI 辅助编程后,主流开发方式都有哪些变化?

代码生成器研究

当代程序员的一天怎么过?

代码生成器研究

如何转行互联网?

代码生成器研究

热点浅谈:低代码开发平台是什么?低代码具备什么特点?

代码生成器研究

如何在VMMask指纹浏览器中设置代理

Geek_bf375d

爬虫 IP 代理IP 跨境电商 #HTTP

直播预约|FFA 2023 主会场,12 月 8 日正式上线!

Apache Flink

flink

FFA 2023 「生产实践」专场:Flink 大规模技术优化与生产实践

Apache Flink

大数据 flink 实时计算

释放潜能:IT外包服务对业务增长的强大推动

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

IT外包服务广泛应用于哪些行业?

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

想转行学计算机,但现在听说互联网裁员太严重?

代码生成器研究

终于,AWS Aurora 也走向了融合架构,这一次阿里云 PolarDB-X 确实遥遥领先

小猿姐

数据库 阿里云 AWS

香橙派联合华为发布全新Orange Pi AIpro 开发板,起售价799元

彭飞

智能联动第三方告警中心,完美实现故障响应全闭环

观测云

人工智能 监控 智能告警

JNPF低代码开发平台高效赋能开发者

互联网工科生

开发者工具 低代码开发 JNPF

从HumanEval到CoderEval: 你的代码生成模型真的work吗?

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 代码生成大模型

数据挖掘与低代码开发应用:加速业务创新的黄金组合

快乐非自愿限量之名

数据挖掘 低代码 数据应用

FFA 2023 专场解读:AI 特征工程、数据集成

Apache Flink

大数据 flink 实时计算

为什么要做ERP集成?ERP系统如何与其他业务应用程序集成

RestCloud

ETL ERP

FFA 2023 专场解读:流批一体&平台建设&云原生

Apache Flink

大数据 flink 实时计算

阿里巴巴中国站按关键字搜索商品 API 的调用频率限制是多少?

技术冰糖葫芦

API 开发

华为亮相OpenInfra Days China 2023,分享开源基础设施的实践和技术展望

彭飞

低代码如何降低门槛、快速交付、实现可持续IT架构?

树上有只程序猿

软件开发 低代码平台 JNPF

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