报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

评论 1 条评论

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

Shutterstock完成对Envato的收购

财见

common-intellisense:助力 TinyVue 组件书写体验更丝滑

OpenTiny社区

开源 Vue 前端 组件库 OpenTiny

人工智能|RAG 检索增强生成

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

巧用 API 接口,尽览京东商品详情

Noah

AI写PPT的软件有哪些?这5款备受推崇的AIPPT工具值得推荐!

彭宏豪95

人工智能 PPT 在线白板 办公软件 AI生成PPT

【YashanDB知识库】数据库使用shutdown immediate无响应导致coredump

YashanDB

yashandb 崖山数据库 崖山DB

豆瓣评分8.6!破晓大牛仅用一份手册就把Web安全讲明白了!

我再BUG界嘎嘎乱杀

网络安全 WEB安全 网安

【YashanDB知识库】filter or改写问题

YashanDB

yashandb 崖山数据库 崖山DB

28款信息无障碍研究会合作产品通过工信部适老化及无障碍水平评测

信息无障碍研究会

异构智算,打赢智算时代「牧野之战」

脑极体

AI

2024-07-24:用go语言,给定一个整数数组 nums,其中至少包含两个元素。 可以根据以下规则执行操作:选择最前面两个元素删除、选择最后两个元素删除,或选择第一个和最后一个元素删除。 每次操作

福大大架构师每日一题

福大大架构师每日一题

远程控制软件怎么选?向日葵功能齐全还不限制免费使用

编程猫

探索网络安全:浅析文件上传漏洞

我再BUG界嘎嘎乱杀

网络安全 漏洞 文件上传

基于Java+SpringBoot+Vue前后端分离毕业生实习与就业管理系统设计和实现

hunter_coder

后端开发

【论文速读】| 关于构建基于检索增强生成的聊天机器人的事实

云起无垠

流模式vs批模式:你选对了吗?

Apache Flink

大数据 flink 流计算 批处理 flink batch

基于Java+SpringBoot+Vue前后端分离毕业生实习与就业管理系统设计和实现

hunter_coder

后端开发

以小见大-B端图标设计沉思

inBuilder低代码平台

设计 图标制作

【IT小知识】什么是工单?什么是工单中心?

行云管家

堡垒机 工单 IT 运维 工单中心

数业智能心大陆,你的专属AI心理专家

心大陆多智能体

智能体 AI大模型 心理健康 数字心理

MySQL 8.0 字符集与比较规则介绍

Simon

MySQL

Idea 永久激活教程

源字节1号

小程序 开源 后端

中国AI长卷(二):框架立基

脑极体

AI

Mac应用快速启动器:Alfred 5 for Mac 激活版

你的猪会飞吗

mac软件下载 Mac破解软件

系统整容纪:慢SQL之独家秘籍,离不可替代型人才更近一步

京东科技开发者

京东百万级调度系统(Buffalo)架构解密

京东科技开发者

微前端父子应用及兄弟应用间组件或方法共享方案

京东科技开发者

医院采购堡垒机厂商重点推荐-行云管家

行云管家

网络安全 医院 堡垒机 等保合规

【漏洞复现】Nodebb 被爆未授权拒绝服务攻击

我再BUG界嘎嘎乱杀

网络安全 漏洞 网安 漏洞复现

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