速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

  • 2016-07-11
  • 本文字数:1273 字

    阅读完需:约 4 分钟

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 相关的社区。

查看英文原文: Meson Workflow Orchestration and Scheduling Framework for Netflix Recommendations


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-07-11 19:001900
用户头像

发布了 227 篇内容, 共 74.8 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

嵌入式Linux下移植MT7601无线WIFI(网卡)驱动

DS小龙哥

10月月更

NFT链游系统开发丨Alien Worlds异形世界链游系统开发成熟技术(Demo)

I8O28578624

PriorityQueue 源码解析(四)

知识浅谈

Queue 10月月更

滴滴前端二面vue相关面试题

bb_xiaxia1998

Vue

react源码中的生命周期和事件系统

flyzz177

React

软件测试 | 测试开发 | 一文搞定 Appium 环境配置

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

测试

React循环DOM时为什么需要添加key

beifeng1996

React

你真的了解redis持久化机制AOF吗?

芥末拌个饭吧

redis 后端 10月月更

Vue的computed和watch的区别是什么?

bb_xiaxia1998

Vue

最大为 N 的数字组合

掘金安东尼

算法 10月月更

Java三大特性(三)—多态

共饮一杯无

Java 多态 10月月更

算法基础(六)| 双指针算法及模板应用

timerring

算法 双指针 10月月更

new Vue的时候到底做了什么

bb_xiaxia1998

Vue

深入浅出防抖与节流函数

CoderBin

JavaScript 面试 前端 防抖节流 10月月更

页面中元素的锚点定位

默默的成长

前端 Vue 3 10月月更

React的useLayoutEffect和useEffect执行时机有什么不同

beifeng1996

React

React面试八股文(第一期)

beifeng1996

React

使用less/css 动态的切换主题色实现换肤功能

默默的成长

前端 Vue 3 10月月更

页面中元素的吸顶

默默的成长

前端 Vue 3 10月月更

SparkSQL on K8s 在网易传媒的落地实践

网易数帆

大数据 spark Kubernetes Kyuubi 企业号十月 PK 榜

pandas如何读写源数据

芥末拌个饭吧

pandas python 3.5+ 10月月更

linux下驱动开发_红外线解码驱动

DS小龙哥

10月月更

你了解Redis RDB快照吗

芥末拌个饭吧

redis 后端 10月月更

2022昇腾AI创新大赛16地区域决赛圆满落幕 32支队伍角逐全国冠军

Geek_2d6073

从react源码看hooks的原理

flyzz177

React

【LeetCode】 LRU 缓存机制Java题解

Albert

算法 LeetCode 10月月更

React源码分析(三):useState,useReducer

goClient1992

React

vivo平台化实践探索之旅-平台产品系列01

vivo互联网技术

平台化 系统平台化

华为云从入门到实战 | 云容器服务

TiAmo

华为 华为云 云开发 10月月更

React源码分析(二)渲染机制

goClient1992

React

软件测试 | 测试开发 | Cypress 强大全新的 Web UI 测试框架应用尝鲜

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

测试

Meson,用于协调和调度Netflix推荐工作流的架构_Python_Srini Penchikala_InfoQ精选文章