写点什么

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:001904
用户头像

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

关注

评论

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

15个经典面试问题及回答思路,Java面试你必须要知道的那些知识

Java 程序员 后端

2021Java精选面试实战总结整理,讲的太透彻了

Java 程序员 后端

2021Java网络编程总结篇,百度技术三面四面,最全Java知识总结

Java 程序员 后端

2021Java面试心得,shiro框架视频尚硅谷,最新Java开发进阶

Java 程序员 后端

2021Java面试笔试总结,jdk使用教程,Java高级工程师必备知识

Java 程序员 后端

2021Java高级进阶学习资料,字节跳动Java高级工程师

Java 程序员 后端

2021Java高级面试题总结,kafka面试常见问题

Java 程序员 后端

在阿里云ECS服务器上部署OpenVPN

wong

Centos 7 OpenVPN ECS

2021Java常见笔试题,牛客网java编程题送信,字节Java面试题

Java 程序员 后端

Activity重启引起的重复发送消息Bug分析

轻口味

android 10月月更

2021Java高级面试题,极客时间vip年卡,看懂这些帮你轻松解决就业问题

Java 程序员 后端

2021Java常见面试题,牛客网中级项目异步队列,Java高级面试题及答案整理

Java 程序员 后端

2021Java开发学习路线,两年Java开发经验

Java 程序员 后端

2021Java精选面试实战总结整理,架构师必备

Java 程序员 后端

2021Java进阶者的新篇章,Java全栈知识体系

Java 程序员 后端

10年阿里开发架构师经验分享:rabbitmq教程go,Java零基础入门pdf

Java 程序员 后端

1200页文档笔记,Java+JVM+MySQL+数据结构与算法

Java 程序员 后端

12年高级工程师的“飞升之路”,Java知识点总结合集

Java 程序员 后端

2021Java开发现状分析,看完这一篇你就懂了

Java 程序员 后端

12道Java高级面试题:开课吧数据分析百度云,大厂Java开发面试解答

Java 程序员 后端

上云,能打破低代码“内卷”吗?

海比研究院

低代码

2021Java高级面试题汇总解答,Java开发新手入门教程

Java 程序员 后端

万物智联与烟火人间,一场跨越20年的双向奔赴

脑极体

做一名真正的软件工程师

百度开发者中心

程序员 最佳实践 分享 工程师

2020-2021京东Java面试真题解析,在线面试指南

Java 程序员 后端

2021Java者未来的出路在哪里,kafka从入门到精通

Java 程序员 后端

月经逆行、体能差、雌激素影响心态……女性进入太空,要经历哪些科技伪命题?

脑极体

13分钟彻底搞懂分布式系统服务注册与发现原理,写给互联网大厂员工的真心话

Java 程序员 后端

2020-2021蚂蚁金服Java面试真题解析,2021最新Java面试真题解析

Java 程序员 后端

2021Java开发面试解答,数据库mysql教程视频教程,90%的人看完都说好

Java 程序员 后端

实时即未来!Flink Forward Asia 2021 议程正式上线!

Apache Flink

大数据 flink

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