Koordinator 支持 K8s 和 YARN 混搭,小红书分享离线混搭实践

小夏 科技 更新 2024-01-30

作者:索增曾(小红书)、宋泽辉(小红书)、张作伟(阿里云)。

Koordinator 是基于阿里巴巴在容器调度领域多年经验孵化的开源项目,目前在 K8S 生态中支持离线混合,但在 K8S 生态之外,仍有相当数量的用户会在 Apache Hadoop Yarn 上运行大数据任务这种类型的资源管理系统。 虽然目前部分算力引擎提供了 K8S Operator 将任务连接到 K8S 生态,但不可否认的是,YARN 生态仍然保持着一定程度的活跃度,一个典型的例子就是包括阿里云在内的一系列主流云厂商,仍然提供类似的 e-mapreduce该产品的受欢迎程度体现在用户可以将大数据作业提交到 yarn 运行中。

小红书是 Koordinator 社区的活跃成员,为了进一步丰富 Koordinator 支持的线下混合场景,社区联合阿里云、小红书、蚂蚁金服的开发者推出了 Hadoop Yarn 和 K8S 混合项目,支持向 Hadoop Yarn 提供超额认购的批量资源,进一步提升集群资源的效率, 该项目已在小红书生产环境中正式投入使用。

一般原则

在此之前,行业内部已经有一些关于k8s和纱线混用的做法,但由于落地场景的原因,大部分实现都对纱线系统本身做了相当侵入性的改造,在运维迭代方面对普通用户并不友好。 为了让更多的用户在社区中享受开源技术的好处,Koordinator 在设计时将遵循以下原则。

脱机作业的提交条目与 yarn 相同。 基于开源版本的 Hadoop 纱线,原则上不对纱线进行侵入式改造。 Koordinator 提供了混合资源,k8s pod 和 yarn 任务都可以使用,不同类型的离线应用可以共存于同一个节点。 独立 QoS 策略由 koordlet 管理,并与 Yarn Tasks 的运行时兼容。 方案设计

ResourceManager 和 NodeManger 是 YARN 的核心组件,ResourceManager 负责控制端的任务接收和资源调度,NodeManager 负责任务生命周期管理。 在 yarn 和 k8s 混合部分场景中,RM 仍将作为 yarn 集群的核心组件独立部署,nm 将以容器的形式部署。

Koordinator 新增了 koord-yarn-operator 模块,负责将批处理资源同步到 yarn rm。 为了更精细地管理资源,yarn 任务将独立于 nm 的资源管理,nm 在部署时只需要自费申请批量混合资源即可。 yarn 任务的资源使用通过 cgroups(Linux ContainerExecutor 模式)进行管理,cgroup 路径在 besteffort pod QoS 下,保证可以像其他 k8s pod 一样在 besteffort group 下进行管理。

Koodlet 目前在单机上支持一系列 QoS 策略,这些策略也需要针对 yarn 场景进行适配。 对于资源隔离参数,如组标识、内存 QoS、L3 缓存隔离等,koordlet 会根据设计的 cgroup 层次结构进行适配。 对于驱逐、抑制等动态策略,Koordlet 会新增一个 sidecar 模块 koord-yarn-copilot,用于连接 yarn 场景中的各种数据和操作,包括 yarn 任务元信息收集、资源指标收集、任务驱逐操作等,所有 QoS 策略仍将保留在 koordlet 中,koordlet 内部的相关模块会以插件的形式连接 koord-yarn-copilot 接口。 同时,koord-yarn-copilot 的接口设计将保留一定程度的扩展性,未来可用于与其他资源框架的对接。

有关纱线和 k8s 混纺设计的更多详细信息,请参阅社区设计文档

业务背景

在降本增效的背景下,小红书内部商业化和社区搜索服务中存在大量算法Spark任务,由于离线集群资源短缺,无法及时处理,且**集群在非高峰时段资源利用率较低另一方面,很大一部分 Spark 任务资源调度仍然在 yarn 调度器上运行基于这种情况,结合小红书现有的离线混搭能力,通过打通 K8S 调度器和 yarn 调度器之间的资源视图,并在单机侧支持 Yarn Task 粒度的逐出和 QoS 保证策略,最终实现了保持离线服务提交入口和使用习惯不做任何变化的前提, 使大量Spark任务能够在空闲时间资源上稳定运行,有效提高集群资源利用率,同时大大缓解业务资源压力,有效降低离线业务资源使用成本。

在小红书的实践经验中,有以下几个关键技术点值得分享:

针对本地洗牌带来的磁盘性能瓶颈,我们采用RemoteshuffleService技术,降低本地磁盘IO开销,提升IO性能,有效提高离线业务运营的效率和稳定性,另一方面有效避免IO层面的离线干扰。 除了大数据Spark场景外,在保障策略方面,还有转码、离线推理、训练等业务场景,对保障策略进行了细粒度的优先级排序和策略优化,如离线资源超报(压缩资源、提高利用率)、单节点冲突处理、资源冲突等离线差异化QoS保障策略,或者满足低优先级逐出转码的离线资源要求。结合上述优化方法,最终实现了Spark任务的稳定高效运行和资源的充分利用。 落地福利

截至目前,小红书的线下混合方案已大规模落地,并取得了以下经营成果:

覆盖数万**集群节点,为离线服务提供数十万核计算资源,离线任务逐出率小于1%,混合操作后混合部分的CPU利用率基本不受影响,平均提升8%和10%,部分平均CPU利用率可达45%以上, 大大提高了集群资源的使用效率。

K8s 和 Yarn 混合功能现已全面展开,Koordinator 团队目前正在努力完成一系列发布前的准备工作,敬请期待!

如果你也有兴趣参与到项目的合作共建中来,或者对K8S&纱线混纺事业部感兴趣,欢迎你加入社区专属论坛请在下方留言,我们会尽快与您联系。 参考消息格式:

联系人 (gihub-id e-mail): , eg. @koordinator-dev

您受雇于参与公司 学校组织名称: eg. koordinator community

社区参与意向: eg.我希望能够参与研发学习大数据和云原生混合部门,在生产环境中实现K8S&YARN混合部门功能等。

是的"K8S&纱线混合部分"期待什么:

相关链接:1] apache hadoop yarn

2] e-mapreduce

3] 设计文档。

4] 专题讨论区。

点击下面的链接,查看Koordinator的详细介绍和使用方法!

相似文章

    现在掌握窍门还为时不晚!新款“起亚 K8”是世界上第一款,足够漂亮,配备 3 5 V6 发动机

    年洛杉矶车展揭开了 韩国起亚K 的神秘面纱。这款新车型以其非常后现代的外观而备受瞩目,尽管韩国汽车在全球市场上的表现并不起眼,但从设计的角度来看,它们总是引人注目,通常可以称为 时尚先锋 和往常一样,这一代起亚K在设计上绝对不逊色于奔驰 奥迪等系列。作为大型旗舰车型,整体设计保持了前卫的风格。全新设...

    支持800V超级充电,搭配45英寸8K屏幕,Galaxy E8预售价18 80,000 竞争力如何?

    距离吉利Galaxy E的发布越来越近了。新车预售价格已经公布,不知道大家是不是很兴奋?新车将推出五种配置,目前预售价格为,元起。作为吉利银河品牌旗下的旗舰轿车,也是该品牌首款纯电E系车型,银河E带来了什么?后续市场竞争力如何?让我们在这篇文章中谈谈它。新车外观如何?其实吉利Galaxy E的外观很...

    海信壁画TVR8K 65R8K(海信65R8K)参数,画质和音质介绍

    今天小编就给大家详细分析一下海信壁画电视Rk RK 寸壁画一体机设计电视的性能 画质 音质 参数和性价比,帮助大家全面了解这款产品。.海信RK外观设计。海信RK电视采用一体式壁画设计,让电视更贴近墙面,整机薄至。毫米,实现家用电器一体化美学。同时,电视还采用了铝合金框架和底座,提升了整体质感。第二,...

    镜面不锈钢管6K 8K 10K介绍

    当我们谈论装饰管时,我们通常会提到一个概念 镜面不锈钢管。在装饰管领域,镜面不锈钢管是指对管材表面进行特殊处理,通过各种工艺进行抛光,以达到镜面质量。镜面不锈钢管的表面等级可分为k k k三个等级,在市场上通常称为粗抛光 半精抛光 精抛光。k 值是镜像效应的度量。k 用于普通镜面效果,k 用于精细的...

    4k和8k有什么区别

    K和K是指显示设备的分辨率,它表示屏幕上的像素数。以下是它们之间的区别 分辨率 K显示器的分辨率为 像素,而K显示器的分辨率为 像素。因此,k的分辨率是k的倍。图像细节 由于 K 具有更高的像素密度,因此它能够呈现更多细节和更清晰的图像。在相同尺寸的屏幕上,K 显示器能够提供更多像素,使图像更清晰 ...