Meson,用于协调和调度Netflix推荐工作流的架构

简介:

Netflix力图在人们未观看视频之前就预测他们想看的。为此Netflix每日运行多个机器学习(ML)工作流,这些流水线用于构建、训练并验证有助于视频推荐的个性化推荐算法。Meson是一个工作流的协调和调度架构,它管理这些所有机器学习流水线的生命周期。

近期Netflix开发团队公开了Meson架构,并描述了它是如何作用于机器学习流水线的。Meson的目标之一是当允许工程师用自选的技术构造流水线的每一步时,增进整体算法实验的速度、可行性和可重复性。

部分在Netflix的机器学习流水线中发挥了重要作用的技术包括:Spark MLlib、Python、 R 和Docker。

一个典型的用于驱动视频推荐的机器学习流水线包括如下步骤:

用户选取;特征生成;模型训练;模型验证;模型发布。

在Netflix,用户选取步骤通过Hive查询实现了对用于分析的用户队列的选择。数据清洗和准备功能由Python脚本实现,该脚本创建了两套用户,用于并行的两条执行路线。其中的一条执行路线实现对全局模型的构建和分析,其中使用了Apache Spark作为运算架构,以及HDFS作为临时存储。另一条执行路线使用R语言构建地区(国家)特定的模型,其中地区的数量依据为分析所选取的队列而动态变化。

模型验证步骤用Scala代码实现,。该步骤用于测试当两条执行路径汇聚时模型的稳定性。整个过程重复直至模型达到稳定。最终,新模型使用Docker容器技术发布,这样的发布可由其它系统进行调用。

为满足机器学习工作流中的资源需求,Netflix团队在Meson中使用了诸如Apache Mesos这样的资源管理工具。Mesos提供了对CPU、内存、存储及其它计算资源的任务隔离和抽象,并使用这些特性实现了Mesos任务的扩展和容错。

Meson中还包括调度器和执行器组件。

Meson调度器: 该组件管理各个工作流的启动、流控制和运行时间。Meson将内存和CPU需求发送给Mesos,实现对Mesos实际的资源调度的代理。一旦某个执行步骤已就绪可被调度,Meson调度器选取由Mesos提供的适用资源,并将任务发送给Mesos主节点。

Meson执行器: 它是对Mesos执行器的定制,允许开发团队去维护与Meson的通信通道。这样架构消息可被发送到Meson调度器,对于长时间运行的任务是十分有用的。Meson执行器也允许用户数据的传递。

Mesos在调度Meson任务时,它在下载了该任务所有的依赖后,在客户节点上启动一个Meson执行器。当核心任务被执行时,执行器还关注诸如心跳信息发送、任务完成比例、状态消息等其它任务的情况。

Meson还提供了基于Scala的DSL,这允许创建用户定制的工作流。Meson中还具有对原生Spark的支持,这允许在Meson中去监控Spark任务的进程进度。Meson还具备功能去重做失败的Spark过程,或杀掉执行异常的Spark任务。

Netflix团队计划在未来几个月内开源Meson,并构建Meson相关的社区。





====================================分割线================================


本文转自d1net(转载)

目录
相关文章
|
2月前
|
SQL 分布式计算 Hadoop
Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
【2月更文挑战第6天】Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
77 0
|
7月前
|
负载均衡 Java API
深入了解Spring Cloud Netflix:构建微服务架构的利器
在当今快速发展的软件开发领域,微服务架构已经成为了构建高度可伸缩、灵活性强的应用程序的首选方式。然而,微服务架构也带来了一系列的挑战,包括服务发现、负载均衡、容错处理、配置管理等问题。Spring Cloud Netflix是一组用于构建分布式系统的开源工具,它基于Netflix的一些开源项目,为开发人员提供了强大的解决方案,帮助他们轻松地构建和管理微服务应用程序。本文将深入介绍Spring Cloud Netflix的主要组件以及它们如何帮助开发人员构建稳健的微服务架构。
|
资源调度 分布式计算 Kubernetes
给 K8s 装上大数据调度引擎:伏羲架构升级 K8s 统一调度
飞天伏羲作为有着十多年历史的调度团队,在服务好 MaxCompute 大数据平台的过程中,一直在不断通过自我革新赶超业界先进水平,我们经历了 Fuxi 2.0 的这样的大规模升级,今天通过 K8s 统一调度项目又再次实现了系统架构的蜕变,将大数据平台强大的调度能力赋予 K8s 系统,同时去拥抱 K8s 周边丰富的生态。除了集团弹内集群,将来我们在公共云、专有云等多个场景,也会以 K8s 统一调度的方式进行输出,以更好地服务云上的用户,敬请期待!
1428 0
给 K8s 装上大数据调度引擎:伏羲架构升级 K8s 统一调度
|
监控 容灾 数据可视化
微服务架构 | 5.1 使用 Netflix Hystrix 断路器
Hystrix 是一个延迟和容灾库,旨在隔离远程系统、服务和第三方库的访问点,停止级联故障,并在故障不可避免的复杂分布式系统中实现弹性;
237 0
微服务架构 | 5.1 使用 Netflix Hystrix 断路器
|
消息中间件 XML 架构师
架构模式-事件驱动架构-调度者拓扑
架构模式 事件驱动架构 调度者拓扑
406 0
架构模式-事件驱动架构-调度者拓扑
|
负载均衡 网络协议 Java
微服务架构 | 3.1 Netflix Eureka 注册中心
Eureka 是 Netflix 开发的服务发现框架,本身是一个基于 REST 的服务,主要用于定位运行在 AWS 域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的; Spring Cloud 将它集成在其子项目 spring-cloud-netflix 中,以实现 Spring Cloud 的服务发现功能;
366 0
微服务架构 | 3.1 Netflix Eureka 注册中心
|
人工智能 资源调度 数据挖掘
获国际架构顶会ATC2021最佳论文!Fuxi2.0去中心化的调度架构详解
近日,在国际体系架构顶会USENIX ATC2021上,阿里云飞天伏羲团队与香港中文大学合作的一篇论文《Scaling Large Production Clusters with Partitioned Synchronization》不仅成功被大会录取,而且被大会专家组评定为三篇最佳论文之一(Best Paper Award)。
获国际架构顶会ATC2021最佳论文!Fuxi2.0去中心化的调度架构详解
|
存储 JSON Java
Netflix 的六边形架构实践
在领域知识体系尚未建立的情况下,单体架构可以实现快速开发和快速变更。后来,使用它的开发人员超过 30 人,有超过 300 个数据库表。
|
Java 微服务 Spring
spring cloud微服务分布式云架构-Spring Cloud Netflix
该项目通过自动配置为Spring Boot应用程序提供Netflix OSS集成,并绑定到Spring环境和其他Spring编程模型成语。通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并通过经过测试的Netflix组件构建大型分布式系统。
8930 0