从Chukwa到Keystone :Netflix 的数据流水线演进

2015 年 12 月,Netflix 新的数据流水线 Keystone 上线。本文将介绍近年来 Netflix 数据流水线的演进。这是介绍新的 Keystone 数据流水线系列文章的第一篇。

Netflix 是一家数据驱动的公司,很多业务和产品决策均基于数据分析作出。数据流水线的作用是在云上收集、聚合、处理和移动数据。Netflix 的几乎每一款应用都会用到该数据流水线。

先来看 Netflix 数据流水线的一些数据:

每天 5000 亿事件, 1.3PB 数据 峰值时间每秒处理 800 万事件,24GB 数据

有数百种事件会通过该流水线,如:

查看视频活动 UI活动 错误日志 性能事件 问题定位和诊断事件

这里需要注意的是,运维相关指标不通过该流水线处理,而是有一个独立的系统—— Atlas,和 Netflix 的其他很多技术一样,该系统也开源了。

在过去这些年,因为需求的变化和技术的发展,Netflix 的数据流水线有几次大的变化。

V1.0 Chukwa 流水线

原始的数据流水线,唯一目的就是聚合事件,并将其上传到 Hadoop/Hive 进行批处理。从下图中也可以看出,架构相当简单。Chukwa
收集数据,并以 Hadoop 顺序文件格式将它们写入到 S3 中。大数据平台团队进一步处理 S3 文件,然后以 Parquet 格式写入到
Hive 中。从一端到另一端的延迟高达 10 分钟。不过对于通常以天或小时的频率扫描数据的批处理作业而言,也足够了。

  V1.5 带有实时分支的 Chukwa 流水线

随着 Kafka 和 Elasticsearch 的出现,Netflix 对实时分析的需求也不断增长。这里的“实时”指的是延迟小于 1 分钟。

除了将事件上传到 S3/EMR,Chukwa 还能将流量发到 Kafka(实时分支的前端)。在 V1.5 中,大约有 30%
的事件会进入实时流水线。实时分支的核心是 Router。它负责将数据从 Kafka 路由到不同的地方,如 Elasticsearch 或次级
Kafka。

过去两年,Elasticsearch 在 Netflix 的应用增长迅速。现在有 150 个集群,总计 3500 个实例,上面有 1.3PB 数据。绝大部分数据都是通过该数据流水线进来的。

在 Chukwa 将流量发到 Kafka 时,既可以是完整的流,也可以是过滤之后的。有时还需要进一步过滤从 Chukwa 写到 Kafka 的流,这就是引入 Router 的目的所在——可以消耗一个 Kafka 主题,并生成一个不同的Kafka 主题。

在数据到了 Kafka 之后,用户可以使用 Mantis 、 Spark 或定制的应用来做实时的流处理。“自由与责任”(Freedom and Responsibility)是 Netflix 文化的基因。让用户选择合适的工具来处理手头的任务。

因为研发团队擅长处理数据的大规模迁移,所以将 Router 设计成了一个托管服务。在运维路由服务的过程中,他们也得到几点教训:

Kafka 高层消费者可能会丢失分区(partition)所有权,在稳定运行一段时间后,不再处理某些分区。处理需要干预。
当推出新代码时,有时高层的消费者会在重新平衡过程中陷入错误状态。
将路由作业分组,放到一系列集群上,不过管理这些作业和集群的成本持续增长。所以需要更好的平台来管理路由作业。

V2.0 Keystone 流水线 (Kafka fronted)

除了上面提到的与路由相关的问题,还有其他几点考虑:

简化架构 Kafka 实现复制,可以提高系统的可靠性,而 Chukwa 不支持复制。 Kafka 有一个非常活跃、生机勃勃的社区。

  有 3 个主要组件:

数据获取——有两种方式:使用 Java 库,直接写入 Kafka;或者  
发送给 HTTP 代理,然后由代理写入 Kafka。 数据缓冲——Kafka 作为复制的持久消息队列。 数据路由——路由服务负责将数据从前端的Kafka 移到 S3 、 Elasticsearch 和次级 Kafka。

过去几个月,Keystone 已经应用于生产中。目前开发团队仍然在改进 Keystone,着重于QoS、伸缩性、可用性、可运维性和自服务等方面。

本文转自d1net(转载)

时间: 2024-07-28 19:43:26

从Chukwa到Keystone :Netflix 的数据流水线演进的相关文章

用Spark机器学习数据流水线进行广告检测

在这篇文章中,我们Spark的其它机器学习API,名为Spark ML,如果要用数据流水线来开发大数据应用程序的话,这个是推荐的解决方案.关键点: 了解机器学习数据流水线有关内容. 怎么用Apache Spark机器学习包来实现机器学习数据流水线. 数据价值链处理的步骤. Spark机器学习流水线模块和API. 文字分类和广告检测用例. Spark ML(spark.ml)包提供了构建在DataFrame之上的机器学习API,它已经成了Spark SQL库的核心部分.这个包可以用于开发和管理机器

1983到2012:大数据发展演进大事记

近几年来,大数据一直是公共领域的一个热词,但其根源其实早已深植于整部IT发展史中.回溯过去30年,我们就会发现一些在影响着我们收集.管理和分析数据的关键事件,这些事件有助于解释为何大数据今天会如此热门的原因. □1983 IBM发布最新的关系数据库管理系统DB2,使用结构化查询语言,很快成为政府部门的主流产品. □1985 面向编程(OOP)语言,如Eiffel开始流行. □1990 用于互联网搜索的首个搜索工具Archie诞生. □1991 万维网(World Wide Web)利用超文本传输

青山友纪:运用inter-cloud computing处理大数据的演进

第五届中国云计算大会于2013年6月5-7日在北京国家会议中心拉开帷幕.本次大会以国际视野,洞悉全球http://www.aliyun.com/zixun/aggregation/13638.html">云计算发展趋势,并从应用出发,探讨云计算与大数据.云计算与移动互联网.云安全及云计算行业应用等焦点话题.大会还特别设立了云计算服务展示区域,交流国际云计算最新研究成果,展示国内云计算试点城市发展成就,分享云计算发展经验,促进全球云计算创新合作. 图:日本云计算协会会长.日本庆应义塾大学教授

Netflix数据管道的变化历程

去年12月我们的Keystone数据管道正式投入使用,本文我们就来讲讲这些年Netflix数据管道的变化历程. 数据是Netflix的中心,很多的商业决策和产品设计都是依据数据分析而做出的决定.在Netflix,数据管道的目的是对数据进行收集归纳和处理,几乎我们所有的应用都会用到数据管道.下面我们先来看看有关Netflix数据管道的一些统计数据: 每天约5000亿个事件,1.3PB的数据 高峰时段约每秒800万个事件,24GB数据 我们用另外的Atlas系统来管理运营相关的数据所以它并没有出现在

Netflix基于AWS的大数据平台Hadoop架构解析

Netflix近日公开了部署在AWS之上的Hadoop平台架构,而且运行Hadoop工作负载的架构还是属于"独家制造".来自Netflix的数据科学家Sriram Krishnan和Eva Tse在官方的博客中介绍了该平台在运行.管理以及访问多集群时的灵活性,还包括基于AWS的Hadoop架构以及Hadoop平台即服务(PaaS),该服务被称之为"Genie". 毋庸置疑,Netflix在云计算领域有着很独特的发展--几乎把所有的一切都部署在AWS平台之上:除此之外

Netflix:大数据对影视创作影响力巨大

许多Netflix的订阅用户也许都有这样的感受,他们在几个星期以前的某个星期五打开Netflix设备,恰巧看到Netflix推荐栏目上推荐了一档名为"女子监狱"的电视剧,并点击开始观看第一集剧情,然后纳闷着怎么从未听说过这部剧的名字.我们都知道,Netflix的其他原创节目,包括电视剧"纸牌屋"和"发展受阻",都曾获得过巨大的市场效益,但与"女子监狱"相比,这些剧所取得的成功则显得有些逊色. "女子监狱"为

Hadoop连载系列之六:数据收集分析系统Chukwa

系列几篇文章中介绍了分布式存储和计算系统Hadoop以及Hadoop集群的搭建.Zookeeper集群搭建.HBase分布式部署等.当Hadoop集群的数量达到1000+时,集群自身的信息将会大量增加.Apache开发出一个开源的数据收集和分析系统-Chukwa来处理Hadoop集群的数据.Chukwa有几个非常吸引人的特点:它架构清晰,部署简单;收集的数据类型广泛,具有很强的扩展性;与 Hadoop 无缝集成,能完成海量数据的收集与整理. 1 Chukwa简介 ----------------

超越 Hadoop,Luigi 打通云端大数据管道

Liugi数据管线的可视化管理图 新的大数据开源技术和工具往往来自互联网公司,除了Facebook.Google和Twitter这样的巨头外,一些甚至是你想不到的互联网公司,例如Netflix和Spotify(音乐流媒体服务)也会贡献一些优秀的大数据分析开源工具(Suro和Luigi). 近日创业公司Mortar就将Spotify开发的开源大数据工具Luigi搬上云端,在亚马逊云上提供复杂的,涉及大量工具和数据库的大数据流水线处理服务,不论是否使用Hadoop,用户都可以用Luigi管理复杂的大

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

Netflix力图在人们未观看视频之前就预测他们想看的.为此Netflix每日运行多个机器学习(ML)工作流,这些流水线用于构建.训练并验证有助于视频推荐的个性化推荐算法.Meson是一个工作流的协调和调度架构,它管理这些所有机器学习流水线的生命周期. 近期Netflix开发团队公开了Meson架构,并描述了它是如何作用于机器学习流水线的.Meson的目标之一是当允许工程师用自选的技术构造流水线的每一步时,增进整体算法实验的速度.可行性和可重复性. 部分在Netflix的机器学习流水线中发挥了重