写点什么

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

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

关注

评论

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

三面遭阿里新微服务框架暴锤,含恨吃透这份手抄本笔记,终入阿里(1)

Java 程序员 后端

不错,这么好的东西不白嫖也太可惜了!阿里内部首发

Java 程序员 后端

为什么不想做Java了, 现在Java面试怎么这么难,从自身找原因

Java 程序员 后端

三、Spring Cloud之软负载均衡 Ribbon,mysql架构

Java 程序员 后端

上线半天下载量破100W!美团大佬的Java性能调优实战手册,超详细

Java 程序员 后端

上线半天下载量破100W!阿里内部微服务进阶笔记,超详细

Java 程序员 后端

不会吧不会吧?字节“百万级,nginx视频教程吾爱破解

Java 程序员 后端

不是吧阿sir,你这多线程并发也太熟了吧,震惊面试官第四年

Java 程序员 后端

为什么我不建议你用阿里巴巴Java规范,而使用 Google Guava 编程?

Java 程序员 后端

五位阿里大牛联手撰写的《深入浅出Java多线程》

Java 程序员 后端

三面遭阿里新微服务框架暴锤,含恨吃透这份手抄本笔记,终入阿里

Java 程序员 后端

三面蚂蚁金服终获 java高岗 offer,却直言再也不想体验第二次了

Java 程序员 后端

三面阿里云斩获offer:微服务+Redis,积累总结

Java 程序员 后端

两年JAVA程序员的面试总结,mysql索引原理

Java 程序员 后端

为了面试阿里巴巴、腾讯、字节跳动,linux内核架构

Java 程序员 后端

主动学习微服务架构深度解析:微服务的采用前提,微服务使用场景

Java 程序员 后端

【Flutter 专题】22 图解 PopupMenu 那些事儿

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

万字长文,字节大牛百万调优经验之作:JVM调优实战笔记

Java 程序员 后端

不是吧阿sir,你这Redis太熟了吧,震惊面试官第六年

Java 程序员 后端

为什么不想做Java了,6年经验去面试10分钟结束,现在Java面试怎么这么难

Java 程序员 后端

五、redis配置信息以及常用命令,java语言程序设计基础篇第十一版pdf

Java 程序员 后端

一行Java代码实现两玩家交换装备【并发编程】

Java 程序员 后端

不到30岁开上兰博基尼的程序员,为什么这么强,他告诉我只需要把多线程搞好你也行

Java 程序员 后端

不是吧,就因为他和面试官多聊了半个小时红黑树,进了腾讯

Java 程序员 后端

三面腾讯,已拿offer!分享复习经验和后台开发面经

Java 程序员 后端

架构实战营模块二作业

孙志强

架构实战营

世界顶级SQL技术专家呕心沥血半年才整理出这份:SQL优化核心思想笔记,手慢无

Java 程序员 后端

二、docker 镜像容器常用操作(让我们用docker 溜得飞起)

Java 程序员 后端

云服务器下centos7,nginx面试题

Java 程序员 后端

不要再本地启动项目调试了,试SpringBoot远程调试你会发现新大陆!

Java 程序员 后端

为什么一个还没毕业的大学生能够把 IO 讲的这么好?

Java 程序员 后端

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